我想显示音频还剩多少秒。像这样:
我知道我需要使用positionMillis
和durationMillis
道具,但是如何监控positionMillis
?
当我单击一个按钮时,我会加载音频并播放它(handleAudio
功能)。这是我只会得到positionMillis
一次(或者如果我暂停/恢复音频)。如何连续观看positionMillis
音频的道具?
const [sound, setSound] = useState(null);
const [soundStatus, setSoundStatus] = useState({ status: null, icon: play });
async function handleAudio() {
//playing audio for the first time
if (soundStatus.status === null) {
console.log("Loading Sound");
const { sound, status } = await Audio.Sound.createAsync(
{
uri: `some_url`,
},
{ shouldPlay: true },
);
setSound(sound);
setSoundStatus({ status: status, icon: pause });
}
//pause audio
if (soundStatus.status) {
if (soundStatus.status.isLoaded && soundStatus.status.isPlaying) {
const status = await sound.pauseAsync();
console.log("pausing audio");
setSoundStatus({ status: status, icon: play });
}
//resuming audio
if (soundStatus.status.isLoaded && !soundStatus.status.isPlaying) {
const status = await sound.playAsync();
console.log("resuming audio");
setSoundStatus({ status: status, icon: pause });
}
}
}
<Button title="Play sound" onPress={handleAudio}/>
<Text> `${soundstatus.status.positionMillis}:${soundstatus.status.durationMillis}` </Text>