我正在使用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');
答案 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
文件。