你如何要求()React Native中的声音文件?

时间:2016-02-18 05:24:12

标签: react-native

我正在使用https://github.com/zmxv/react-native-sound在我的iOS(和Android)应用上播放声音,我正在尝试通过React Native的资产系统包含声音文件,但是当我打电话时:

var sound = require('./sound.mp3');

我收到错误:

  

无法从[project] /index.ios.js解析模块./sound.mp3:无效的目录[project] /sound.mp3

我的MP3文件位于项目的正确(根)目录中,与错误打印的文件路径完全相同。我也试过将它放在其他目录中。

根据this thread,听起来声音文件应该能够使用require()进行打包吗?

只是做一个测试,要求图像完美运行: var image = require('./image.png');

3 个答案:

答案 0 :(得分:1)

对我有用的只是以root身份使用应用名称:

import myMP3File from '<appname>/assets/mymp3.mp3';
const Sound = require('react-native-sound');
Sound.setCategory('Playback');

// Do whatever you like with it.
Sound(myMP3File, () => console.log('soundfile loaded!'));

答案 1 :(得分:0)

唯一有用的是将我们想要随应用程序发布的音频文件放在assets目录中,然后让Xcode在构建时将这些文件复制到应用程序包中。此时,您可以使用react-native-fs等函数计算文件的完整路径,并将其提供给react-native-sound。

答案 2 :(得分:0)

我在尝试播放 sound.ogg 时遇到了与托管 Expo 相同的错误消息。 我能找到的技巧都没有奏效。 最后解决的办法是将ogg文件转成Expo支持的mp3文件。