我正在使用 jQuery 1.5 和 jPlayer 2.0.0,请忽略这将自动播放音乐的事实,我将在它开始之前提供足够的警告,用户必须按下一个大按钮来启动页面,我会提供一个大的停止按钮。
我希望音频文件开始播放,并在页面准备好并加载音频后调用一个函数。
我有以下 javascript(我已经修改了代码,以便更好地理解它)。
function FemeMusic() {
FemeMusic.prototype.addMusic = function(actionAfterMusic) {
$("#jp").jPlayer({
ready: function() {
var jPlayerElement = $(this);
jPlayerElement.jPlayer('setMedia', {
mp3: 'aSongByJamesBlunt.mp3'
});
jPlayerElement.bind($.jPlayer.event.progress,
function(event) {
if (event.jPlayer.status.seekPercent === 100) {
jPlayerElement.jPlayer("play");
}
if (actionAfterMusic) {
actionAfterMusic.call();
}
});
},
swfPath: "/flash",
preload: "auto"
});
}
}
我有这个功能来触发上面的代码。
$(document).ready(function() {
var femeMusic = new FemeMusic();
femeMusic.addMusic(killMyself);
});
我使用了相同的代码,但使用了 $.jPlayer.event.loadeddata 事件,没有 if 语句而不是 $.jPlayer.event.progress,它在某些浏览器中运行良好,但在使用 flash 时不兼容,因为它不触发事件(我在 Firefox 3.5 中也遇到了问题,但我不知道为什么)。以上似乎适用于Firefox
我读了这个
“我建议您改用进度事件并检查:event.jPlayer.status.seekPercent === 100。”
在这篇文章http://groups.google.com/group/jplayer/browse_thread/thread/9dc9736f9d6947bd?pli=1上,作者是
有人有什么建议吗?
编辑
由于没有在 chrome 和 safari 中使用它,我在 Firefox 的新版本 3.6 上进行了测试(我应该首先这样做)并且它按预期工作,尽管在文档中 event.progress id 描述为:
Flash 和 HTML5 浏览器支持的健壮 jPlayer 事件
在上面的链接中,创建者建议使用 event.progress 来解决浏览器问题,我只能假设这是浏览器特定的问题。
不过,很高兴对此有所澄清。