我正在使用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文件位于项目的正确(根)目录中,与错误打印的文件路径完全相同.我也试过把它放在其他目录中.
根据这个帖子,听起来声音文件应该能够使用require()进行打包?
只是做一个测试,需要一个完美的图像:
var image = require('./image.png');
对我有用的只是使用应用程序名称作为 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!'));
Run Code Online (Sandbox Code Playgroud)
编辑:
我们现在使用rn-fetch-blob以下解决方案来访问本地文件:
import RNFetchBlob from 'rn-fetch-blob';
const { fs } = RNFetchBlob;
filePathIos = `${fs.dirs.MainBundleDir}/yourFolder/yourMp3.mp3`;
filePathAndroid = fs.asset('yourFolder/yourMp3.mp3');
Run Code Online (Sandbox Code Playgroud)
然后可以使用相应的路径来复制文件fs.cp()。
唯一对我们有用的就是将我们想要与应用程序一起发布的音频文件放在一个assets目录中,然后让 Xcode 在构建时将这些文件复制到应用程序包中。此时,您可以使用诸如react-native-fs之类的东西计算文件的完整路径,并将其提供给react-native-sound。
| 归档时间: |
|
| 查看次数: |
5004 次 |
| 最近记录: |