我正在使用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()”。
我的音频会在手机启动时启动。
我无法停止播放音频。
我没有想法,欢迎任何帮助: - )
谢谢:)
答案 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);
}
}