好的,我正在逐字复制https://docs.expo.io/versions/latest/sdk/audio/只是试图让 2 个不同的声音片段在不同的按钮按下时播放 - 一个胜利的声音和一个轻击的声音。所以我想expo-av
用默认的音频示例来实现:
const [sound, setSound] = React.useState();
//Audio
async function playSound(num) {
//console.log('Loading Sound');
if(num == 0)
{
const { sound } = await Audio.Sound.createAsync(
require('./assets/audio/tap.mp3')
);
setSound(sound);
await sound.playAsync();
} else {
const { sound } = await Audio.Sound.createAsync(
require('./assets/audio/success.mp3')
);
setSound(sound);
await sound.playAsync();
}
}
React.useEffect(() => {
return sound
? () => {
//console.log('Unloading Sound');
sound.unloadAsync(); }
: undefined;
}, [sound]);
除了在多个声音片段之间切换的逻辑之外,这种基本设置(playSound(0)
例如,调用按钮按下功能)会导致我的应用程序在加载时冻结/缓慢移动。没有播放任何声音片段,也没有错误。
这里发生了什么?如何使用 React Native Expo 播放 2 个声音片段?