PhoneGap媒体插件停止音频不工作

时间:2013-10-14 10:48:48

标签: javascript audio cordova

我正在使用PhoneGap 3.0.0,我的confic.xml文件确实有所需的插件。我可以开始说我的声音在我运行我的代码时开始,而其他一切都有效。只有一件事不想工作。

我正在使用Jquery Mobile。

我无法停止播放音频。

我正在调用一个名为“stopAudio()”的函数,它读取全局变量“my_audio”并激活“stop()”函数。

这是我的代码。

的index.html

<a href="#stopaudio" data-role="button">Stop Audio</a>

AudioHandler.js

document.addEventListener("deviceready", onDeviceReady, false);

var my_media = null;

function playAudio(url) {
    try {

        var my_media = new Media(url,
            // success callback
            function () {
                my_media.release();
            },
            // error callback
            function (err) {
                my_media.release();
            });

        // Play audio
        my_media.play();
    } catch (e) {
        alert(e.message);
    }
}   


function stopAudio() {
    my_media.stop();
}

controller.js

$("#stopaudio").click(function() {
    stopAudio();
});

使用示例:

playAudio("/android_assets/www/mysound.mp3");

所以我有这3个文件。我发布的是少量内容,但这些文件中的其他内容与音频无关。我也尝试过评论所有内容等等。

因此,基本上“controller.js”是检测到点击的文件,并从那里调用来自AudioHandler.js的函数“stopAudio()”。

我的音频会在手机启动时启动。

我无法停止播放音频。

我没有想法,欢迎任何帮助: - )

谢谢:)

1 个答案:

答案 0 :(得分:2)

您已将my_media声明为本地变量:

try {
        var my_media = new Media(url,

您希望它是全局的,因此请删除var

function playAudio(url) {
    try {

        my_media = new Media(url,
            // success callback
            function () {
                my_media.release();
            },
            // error callback
            function (err) {
                my_media.release();
            });

        // Play audio
        my_media.play();
    } catch (e) {
        alert(e.message);
    }
}