0

好的,我正在逐字复制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 个声音片段?

4

0 回答 0