react-native-sound没有来自Android的声音(仅Genymotion模拟器)

时间:2020-06-02 12:59:04

标签: react-native-sound

我添加了代码以在我的react native应用中播放声音。

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

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Modernizr Test</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.0.6/modernizr.min.js"></script>

</head>
<body>
<h1>Feature Detection</h1>
<div id="feature-detection-result">

</div>
<script>
    var features = Object.keys(Modernizr);
    features = features.sort();

    features.forEach(feature => {
        if (typeof Modernizr[feature] === "boolean") {
            var element = document.createElement('p');
            element.innerHTML = feature + ' ' + Modernizr[feature];
            document.getElementById('feature-detection-result').appendChild(
                element
            );
            console.log(feature, Modernizr[feature]);
        }
        }
    );
</script>
</body>
</html>

具有:

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

和:

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

具有:

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

一切都可以在Gemymotion Android模拟器中正常运行,但是当物理电话上安装了同一个应用程序时却无法正常运行。

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

说:

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

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

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

谢谢。

1 个答案:

答案 0 :(得分:0)

在做完一些测试后,我将研究结果放在这里,以防万一有人需要更多的清晰度。

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

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

需要使用它们将它们与.js文件放在同一目录中。这将在仿真器和实际设备上运行。 我没有使用目录android / app / src / main / res / raw。 我也没有使用Sound.MAIN_BUNDLE选项,因为它没有用,所以我使用了require()作为第一个选项。

相关问题