我正在使用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,它在某些浏览器中运行良好但在使用时不兼容闪存,因为它不会激活事件(我在Firefox 3.5中遇到了问题,但我不知道为什么)。以上似乎适用于Firefox
我读了这个
“我建议您使用progress事件,并检查: 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来解决浏览器问题我只能假设它是浏览器特定的问题。
很高兴能对此做一些澄清。
答案 0 :(得分:3)
来自jPlayer的创建者:
所以你的目标是在媒体缓冲后自动播放?
如果你想要简短的回答。算了吧。 x浏览器缓冲是我的 领域。有些人根本找不到它。只需设置媒体播放即可。
如果你真的想尝试去做。然后播放暂停会有所帮助,
因为media.play()
是比media.load()
更好的x浏览器,即它
操作变化较小。 iOS Safari会完全忽略该游戏
虽然。用户需要点击启动的东西
操作即播放按钮。
最后一点适用于尝试任何形式的自动播放,因此请确保存在 是一个播放按钮可用。 jPlayer界面将不会处理iOS 播放来自浏览器事件的反馈,即停滞不前。
答案 1 :(得分:1)
我在大多数浏览器中使用flash和html5后端的progress事件有问题。据我所知,timeupdate事件的效果要好得多。