【问题标题】:How to get the progress event working with jplayer如何使用 jplayer 获取进度事件
【发布时间】: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


    【解决方案1】:

    来自jPlayer的创建者:

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

    如果您想要简短的答案。忘了它。 x-browser 缓冲是一个地雷 场地。正如您所发现的那样,有些人只是忽略它。只需 setMedia 并播放它。

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

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

    【讨论】:

      【解决方案2】:

      我在大多数浏览器中都遇到了 Flash 和 html5 后端的进度事件问题。据我所知,timeupdate 事件的效果要好得多。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多