我在StackOverflow上找到了很多解决这个问题的方法,但似乎没有什么能解决我的问题。我正在尝试使用org.apache.cordova.media@0.2.10
在我的Cordova(3.5)应用程序中播放mp3文件
var sound = new Media('audio/el/hello.mp3');
sound.play()
但它就是无法播放,并且在LogCat中出现以下错误
MediaPlayer error (1, -2147483648)
我已经尝试在本地提供文件夹,以下内容指向同一文件
var sound = new Media('http://10.0.2.2:9999/www/audio/el/hello.mp3');
sound.play()
这表明不是因为文件有编码问题。
我无法使用最新版本的media
插件,因为deviceready
事件从未触发。
更新:我刚刚尝试将文件解压缩到永久存储并从那里播放它们,我得到了同样的错误。
更新:逐步执行AudioPlayer.java
来源,www
目录似乎不是资产的一部分,因为下列呼叫会掷回FileNotFoundException
,其中f == "www/el/hello.mp3"
fd = this.handler.cordova.getActivity().getAssets().openFd(f);
然而,如果我把文件直接放在assets
文件夹,那么它的工作。
4条答案
按热度按时间b5lpy0ml1#
媒体文件的路径不正确。您必须获取正确的路径:
33qvvth12#
在android上,您只需要有
www
文件夹的正确路径。安卓系统:
如果您的应用也要在iOS上运行,您需要动态添加
/android_asset/www/
,因为iOS不需要它。iOS系统:
tzcvj98z3#
我终于自己想明白了,但我想我应该分享一下。
我需要做的不是获取位置,而是获取我所在页面的当前url,然后构建一个指向我想播放的资产的url。
我希望这能有所帮助
nnt7mjpx4#
我正在使用这个插件与离子电容器。我不得不使用一个不同的文件路径,当播放音频文件位于资产文件夹。此外,我不得不调用释放函数后,onSuccess-event激发。当我调用它后,file.play(),播放没有工作。
如果没有找到音频文件,请确保将其复制到Android项目资产文件夹中。如果没有,请运行“npx cap sync”和“npx cap copy”。