嗨,我尝试使用Expo-AV,但不断收到[Unhandled promise rejection: Error: Cannot load an AV asset from a null playback source]
警告
当声音播放函数第一次被调用时,它显示此警告,并且不播放,但在它之后,当我再次调用该函数时,它播放时没有警告。
const [sound, setSound] = useState();
const [isPlaying, setIsPlaying] = useState(false);
async function playSound() {
console.log("Loading Sound");
const { sound } = await Audio.Sound.createAsync(
{ uri },
{ shouldPlay: true }
);
setSound(sound);
console.log("Playing Sound");
setIsPlaying(true);
await sound.playAsync();
sound._onPlaybackStatusUpdate = (status) => {
if (status.didJustFinish) {
setIsPlaying(false);
console.log("Finished");
}
};
}
<TouchableOpacity onPress={playSound()}>
<Text>Play</Text>
</TouchableOpacity>
有没有反正发挥后,加载正确.
1条答案
按热度按时间nkoocmlb1#
这对我很有效。试试看。在这里,我正在播放一个音频,它是由用户从Expo的DocumentPicker库中选择的。