使用Media插件在Cordova / PhoneGap中播放本地音频

时间:2017-07-06 09:38:51

标签: javascript android cordova audio

我尝试播放mp3文件。如果我在本地webServer上更改文件的路径,则此方法有效,但如果我在Android设备上运行此操作,则不会播放声音且错误为:{"code":1}

这是我的代码

HTML:

<button onclick="playAudio('sounds/blop.mp3');">hi</button>

的javascript:

function playAudio(src) {
    var url = src;
    var my_media = new Media(url,
            // success callback
             function () { console.log("playAudio():Audio Success"); },
            // error callback
             function (err) { console.log("playAudio():Audio Error: " + err);
                            alert(JSON.stringify(err))
                            }
    );
           // Play audio
    my_media.play();
}

config.xml中:

<plugin name="cordova-plugin-media" spec="https://github.com/apache/cordova-plugin-media.git"/>

我试过

<button onclick="playAudio('/android_asset/www/sounds/blop.mp3');">hi</button>

和:

 <button onclick="playAudio('file:///android_asset/www/sounds/blop.mp3');">hi</button>

但它在Android中仍然不起作用:

error :{"code":1}

有没有解决办法?!

编辑1:

是我的应用程序结构

App
`-- www
    `-- index.html
        |+-- sounds
        |   `-- blop.mp3
        |-- js
        `-- css

1 个答案:

答案 0 :(得分:1)

更新:

我检查了你的项目并且传递的网址工作正常,我还测试了应用程序和一些音频文件你有错误的网址设置如下: “声音/ PopCork.mp3”

所以你需要传递的实际网址是:  “文件:///android_asset/www/sounds/PopCork.mp3”

所以要使这项工作跨平台使用:

cordova.file.applicationDirectory +''www / sounds / PopCork.mp3“

项目一切顺利!

此行应该可以正常工作:

<button onclick="playAudio('file:///android_asset/www/sounds/blop.mp3');">hi</button>

你能不能粘贴www文件夹结构?