import React, { useState } from 'react'
import { View, StyleSheet, Pressable} from 'react-native'
import TrackPlayer, { State , usePlaybackState } from 'react-native-track-player';
import Icon from 'react-native-vector-icons/FontAwesome';
const ControlCenter = () => {
const playBackState = usePlaybackState()
const skipToNext = async () => {
await TrackPlayer.skipToNext()
}
const skipToPrevious = async () => {
await TrackPlayer.skipToPrevious()
}
const togglePlayback = async (playback: State) => {
const currentTrack = await TrackPlayer.getActiveTrack();
if (currentTrack !== null) {
if (playback === State.Paused || playback === State.Ready) {
await TrackPlayer.play()
}
else {
await TrackPlayer.pause();
}
}
};
const [bgColor, setBgColor] = useState("#ff0000")
return (
<View style={[styles.container, { backgroundColor: `${bgColor}` }]}>
<Pressable onPress={skipToPrevious}>
<Icon style={styles.icon} name="step-backward" size={40} />
</Pressable>
<Pressable onPress={() => togglePlayback(playBackState)}>
<Icon
style={[styles.icon, styles.playButton]}
name={playBackState === State.Playing ? "pause" : "play"}
size={75}
/>
</Pressable>
<Pressable onPress={skipToNext}>
<Icon style={styles.icon} name="step-forward" size={40} color="#900" />
</Pressable>
</View>
)
}
我正在尝试比较播放状态和
State.Playing
的值,但它给出了错误
'PlaybackState | 类型的参数{ 状态:未定义; }' 不是 可分配给“State”类型的参数。并且出现此比较 是无意的,因为类型 'PlaybackState | { 状态: 不明确的; }' 和 'State' 没有重叠
我最近也遇到了类似的错误。您只需要将“playBackState”替换为“playBackState.state”即可。