我添加了代码以在我的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的支持。
我尝试将音频文件放到任何地方,但是没有声音播放。
有没有办法检查他们需要在哪里? 为什么要在模拟器上运行?
谢谢。
答案 0 :(得分:0)
在做完一些测试后,我将研究结果放在这里,以防万一有人需要更多的清晰度。
具有以这种方式引用的音频文件:
const soundInfo =
{
url: require('./sound.wav'),
}
需要使用它们将它们与.js文件放在同一目录中。这将在仿真器和实际设备上运行。 我没有使用目录android / app / src / main / res / raw。 我也没有使用Sound.MAIN_BUNDLE选项,因为它没有用,所以我使用了require()作为第一个选项。