0

我已添加代码以在我的 react 本机应用程序中播放声音。

我尝试以各种方式指定音频文件的位置:

    const soundInfo =
      {
        url: require('./sound.wav'),
      }

和:

    new Sound(soundInfo.url, error => callback(error, sound));

和:

    const soundInfo =
      {
        url: 'sound.wav',
      }

和:

    const sound = new Sound(soundInfo.url, Sound.MAIN_BUNDLE, error => callback(error, sound));

在 Gemymotion Android 模拟器中一切正常,但在实体手机上安装相同的应用程序时就不行了。

文档: https ://github.com/zmxv/react-native-sound

说:

Android:将您的声音剪辑文件保存在 android/app/src/main/res/raw 目录下。请注意,此目录中的文件必须为小写并带有下划线(例如 my_file_name.mp3),并且 Android 不支持子目录。

我尝试将音频文件放在任何地方,但没有播放任何声音。

有没有办法检查他们需要在哪里?为什么它在模拟器上工作?

谢谢。

4

1 回答 1

0

因为我已经做了一些测试,所以我把我的发现放在这里,以防有人需要更清楚。

以这种方式引用音频文件:

const soundInfo =
  {
    url: require('./sound.wav'),
  }

它们需要放置在与使用它们的 .js 文件相同的目录中。这将适用于模拟器和实际设备。我没有使用目录android/app/src/main/res/raw。我也没有使用 Sound.MAIN_BUNDLE 选项,因为它不起作用,所以我使用 require() 选择了第一个选项。

于 2020-06-06T22:29:40.957 回答