Android平台下如何使用Ionic2 Media插件加载本地音频文件?
How to Load Local Audio Files with the Media Plugin on Android
我之前在使用Media插件加载Android本地音频时也踩过这个坑,Error code 1基本都是文件路径没写对导致的——直接用"assets/sounds/tone.mp3"这种相对路径是不行的,得遵循Android平台的assets文件访问规则来写路径。
下面是具体的解决方法:
使用Android专属的assets文件URI前缀
对于存放在assets目录下的本地文件,Media插件要求你使用file:///android_asset/作为路径前缀,后面跟上文件在assets内的相对路径。比如你的音频文件在assets/sounds/tone.mp3,正确的路径应该是:"file:///android_asset/sounds/tone.mp3"修改后的完整代码示例
把你的代码调整成这样即可正常加载本地音频:this.ringTone = this.media.create("file:///android_asset/sounds/tone.mp3");为什么相对路径会失败?
在线音频用HTTP/HTTPS URL时,插件能直接识别并发起网络请求,但Android的assets目录属于APK内部的资源目录,有特殊的访问机制,直接用相对路径插件无法定位到文件位置,因此抛出了code 1的错误(本质是“文件未找到”)。额外检查项
- 确认你的音频文件确实存放在项目的
assets/sounds/目录下(比如Ionic项目是src/assets/sounds/),打包时要保证文件被正确包含进APK的assets目录中。 - 确保你使用的Media插件版本与你的Cordova/Ionic版本兼容,避免版本不匹配导致的路径解析问题。
- 确认你的音频文件确实存放在项目的
内容的提问来源于stack exchange,提问作者Khaled Ramadan
相关产品推荐
相关产品推荐

