有什么方法可以在 jPlayer jquery 插件中设置 15 秒倒带按钮?
Any way to have a 15 seconds rewind button in the jPlayer jquery plugin?
我正在使用 this jPlayer plugin 在我的网站上安装音频播放器。
正在尝试获取分配给按钮的功能,该按钮将音频播放从当前时间位置倒回 15 秒并继续播放。
类似于 iPhone iTunes 播客播放器中的按钮。
有代码在this fiddle
基本上,我在脚本区域中尝试 运行 的代码如下。
$(".rewind").click(function(){
$("#jquery_jplayer_1").jPlayer("play", event.jPlayer.status.currentTime - 15);
});
问题是 event.jPlayer.status.currentTime
通常在 jPlayer
操作引发事件时访问。有几个方法可以解决您的问题,但最简单的方法可能是直接访问 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);
}
});
已更新 Fiddle:http://jsfiddle.net/XLNCY/18423/
看起来你很接近,但你在普通的点击处理程序中没有 'jPlayer' 事件并且这个 part of the jPlayer documentation 声明:
The jPlayer object itself may also be accessed through $('#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);
});
});
我正在使用 this jPlayer plugin 在我的网站上安装音频播放器。
正在尝试获取分配给按钮的功能,该按钮将音频播放从当前时间位置倒回 15 秒并继续播放。
类似于 iPhone iTunes 播客播放器中的按钮。
有代码在this fiddle
基本上,我在脚本区域中尝试 运行 的代码如下。
$(".rewind").click(function(){
$("#jquery_jplayer_1").jPlayer("play", event.jPlayer.status.currentTime - 15);
});
问题是 event.jPlayer.status.currentTime
通常在 jPlayer
操作引发事件时访问。有几个方法可以解决您的问题,但最简单的方法可能是直接访问 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);
}
});
已更新 Fiddle:http://jsfiddle.net/XLNCY/18423/
看起来你很接近,但你在普通的点击处理程序中没有 'jPlayer' 事件并且这个 part of the jPlayer documentation 声明:
The jPlayer object itself may also be accessed through $('#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);
});
});