【发布时间】:2013-03-01 05:55:40
【问题描述】:
我正在使用 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 来解决浏览器问题,我只能假设这是浏览器特定的问题。
如果能得到一些澄清会很高兴。
【问题讨论】:
标签: javascript jquery html jplayer