任何方式有一个15秒的倒带按钮在jPlayer jquery插件

Any way to have a 15 seconds rewind button in the jPlayer jquery plugin?

本文关键字:按钮 倒带 jPlayer 插件 jquery 15秒 何方 有一个 任何方      更新时间:2023-09-26

我使用这个jPlayer插件在我的网站上有一个音频播放器。

尝试获得一个功能,分配给一个按钮,它从当前时间位置倒回音频播放15秒并继续播放。

类似iPhone iTunes podcast播放器的按钮。

这里有代码

基本上,我试图在脚本区域运行的代码如下。

$(".rewind").click(function(){
        $("#jquery_jplayer_1").jPlayer("play", event.jPlayer.status.currentTime - 15); 
    }); 

问题是当事件由jPlayer动作引发时通常访问event.jPlayer.status.currentTime。有几个工作围绕您的问题,但最简单的可能只是直接访问jPlayer data,如:

var currentTime = $('#jquery_jplayer_1').data('jPlayer').status.currentTime;

更新后的代码可能看起来像这样:

$(".rewind").click(function(e){
    var currentTime = $('#jquery_jplayer_1').data('jPlayer').status.currentTime;
    if (currentTime > 15) {
        $("#jquery_jplayer_1").jPlayer("play", currentTime - 15);     
    }    
});

更新小提琴:http://jsfiddle.net/XLNCY/18423/

看起来你很接近,但你没有'jPlayer'事件在一个正常的点击处理程序和这部分的jPlayer文档声明:

jPlayer对象本身也可以通过$('#jp').data('jPlayer')访问。

这个JSFiddle正在使用下面突出显示的更改:http://jsfiddle.net/XLNCY/18422/

$(".rewind").click(function(event){
    $("#jquery_jplayer_1").jPlayer("play", $("#jquery_jplayer_1").data('jPlayer').status.currentTime - 15); 
});

另一种方法是将当前时间存储在timeupdate事件的变量中:

$(document).ready(function() {
    var current_time;
    $("#jquery_jplayer_1").jPlayer({
        ready: function(event) {
            $(this).jPlayer("setMedia", {
                title: "Bubble",
                m4a: "http://jplayer.org/audio/mp3/Miaow-07-Bubble.mp3",
                oga: "http://jplayer.org/audio/ogg/Miaow-07-Bubble.ogg"
            });
        },
        timeupdate: function(e){
            current_time = e.jPlayer.status.currentTime;
        },
        swfPath: "http://jplayer.org/latest/dist/jplayer",
        supplied: "mp3, oga",
        wmode: "window",
        useStateClassSkin: true,
        autoBlur: false,
        smoothPlayBar: true,
        keyEnabled: true,
        remainingDuration: true,
        toggleDuration: true
    });
    $(".rewind").on('click', function(e){
        $("#jquery_jplayer_1").jPlayer('play', current_time - 15);
    });
});   

jsFiddle