我正在使用“ expo-av”库中的音频API。按下按钮后,我应该会听到声音,但是我得到了警告 可能的未处理的承诺拒绝(编号:2): 错误:播放器不存在。
首先,它运行良好,但是经过一两次尝试后,即使删除$ setTimeout()$,该错误仍然持续存在
export default class App extends Component {
async playAudio (Number){
const SoundObject = new Audio.Sound();
try {
let path = AudioList[Number];
await SoundObject.loadAsync(path);
await SoundObject.playAsync()
.then(async playbackStatus => {
setTimeout(() => {
SoundObject.unloadAsync();
},playbackStatus.playbackDurationMillis)
})
.catch((error) => {
console.log(error);
})
} catch (err) {
console.log(err);
}
}
render(){
return (
<View style={styles.container}>
<View style={styles.grid}>
<Image
source={require('./assets/logo.png')}
style={styles.image}
/>
<View style={styles.row}>
<TouchableOpacity
style={[{backgroundColor: BackgroundNumber[1]}, styles.item]}
onPress={() => this.playAudio("one")}
>
<Text style={styles.itemText}>One</Text>
</TouchableOpacity>
</View>
</View>
</View>
);
}
}