gpt4 book ai didi

javascript - 如何使用 jplayer 获取进度事件

转载 作者:可可西里 更新时间:2023-11-01 12:53:27 25 4
gpt4 key购买 nike

我正在使用 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描述为:

A robust jPlayer event supported by Flash and HTML5 browsers

在上面的链接中,创建者建议使用 event.progress 来解决浏览器问题,我只能假设这是浏览器特定的问题。

不过,如果能对此进行一些澄清,那就太好了。

最佳答案

来自 jPlayer 的创建者:

所以您的目标是在媒体缓冲后自动播放?

如果你想要简短的答案。忘了它。 x-browser 缓冲是一个地雷 field 。正如您发现的那样,有些人只是忽略它。只需设置媒体并播放即可。

如果你真的想尝试去做。然后播放然后暂停会有所帮助,因为 media.play() 是比 media.load() 更好的 x 浏览器,即它的操作变化较小。 iOS Safari 会完全忽略播放尽管。用户需要点击一些东西来启动操作即播放按钮。

最后一点适用于尝试任何形式的自动播放,因此请确保是可用的播放按钮。 jPlayer 界面将应付 iOS 不通过浏览器事件的反馈进行播放,即停滞。

关于javascript - 如何使用 jplayer 获取进度事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4970207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com