Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jPlayer-通过Javascript实现回放功能_Javascript_Jquery_Audio_Keypress_Jplayer - Fatal编程技术网

jPlayer-通过Javascript实现回放功能

jPlayer-通过Javascript实现回放功能,javascript,jquery,audio,keypress,jplayer,Javascript,Jquery,Audio,Keypress,Jplayer,我在使用时遇到了一个问题,我在搜索了一些地方后认为,在这里它会被广泛使用,肯定会有人遇到类似的问题 我正在使用jPlayer来播放音频文件,我的用户希望通过特定的热键快进和快退功能。我注意到jPlayer并没有提供这种开箱即用的功能(它目前只通过点击进度条处理快进和快退) 理想情况下,只需按一次键即可切换快进(或倒带)。当再次按下同一个键时,音频文件将根据当前位置开始播放。我决定实施我自己的解决方案,目前看来效果不错。我想我会分享它,以防其他人遇到这样的问题 恕我直言。这只是一个概念证明: 必要

我在使用时遇到了一个问题,我在搜索了一些地方后认为,在这里它会被广泛使用,肯定会有人遇到类似的问题

我正在使用jPlayer来播放音频文件,我的用户希望通过特定的热键快进和快退功能。我注意到jPlayer并没有提供这种开箱即用的功能(它目前只通过点击进度条处理快进和快退)


理想情况下,只需按一次键即可切换快进(或倒带)。当再次按下同一个键时,音频文件将根据当前位置开始播放。

我决定实施我自己的解决方案,目前看来效果不错。我想我会分享它,以防其他人遇到这样的问题

恕我直言。这只是一个概念证明:

必要的Javascript:

//Handles the key down event (so the user can hold a key down to continue)
$(document).keydown(function (e) {
    //Rewind
    if (e.keyCode == 37 && (!rewinding)) {
        rewinding = true;
        //Pause the player
        $("#player").jPlayer("pause");
        RewindTrack();
        rwaction = window.setInterval(function () { RewindTrack() }, 500);
    }
    else if (e.keyCode == 39 && (!fastforward)) {
        fastforward = true;
        //Pause the player
        $("#player").jPlayer("pause");
        FastforwardTrack();
        ffaction = window.setInterval(function () { FastforwardTrack() }, 500);
    }
});
//Ends the action
$(document).keyup(function (e) {
    //Rewind
    if (e.keyCode == 37) {
        rewinding = false;
        window.clearInterval(rwaction);
        $("#player").jPlayer("pause");
    }
    else if (e.keyCode == 39) {
        fastforward = false;
        window.clearInterval(ffaction);
        $("#player").jPlayer("pause");
    }
});

//Related function
function GetPlayerProgress() {
    return ($('.jp-play-bar').width() / $('.jp-seek-bar').width() * 100);
}

//Handles rewinding
function RewindTrack() {
    //Get current progress and decrement
    var currentProgress = GetPlayerProgress();
    //Rewinds 10% of track length
    var futureProgress = currentProgress - 10;
    //If it goes past the starting point - stop rewinding and pause
    if (futureProgress <= 0) {
        rewinding = false;
        window.clearInterval(rwaction);
        $("#player").jPlayer("pause", 0);
    }
    //Continue rewinding
    else {
        $("#player").jPlayer("playHead", parseInt(futureProgress, 10));
    }
}

//Fast forwards the track
function FastforwardTrack() {
    //Get current progress and increment
    var currentProgress = GetPlayerProgress();
    //Fast forwards 10%
    var futureProgress = currentProgress + 10;
    //If the percentage exceeds the max - stop fast forwarding at the end.
    if (futureProgress >= 100) {
        fastforward = false;
        window.clearInterval(ffaction);
        $("#player").jPlayer("playHead", parseInt($('.jp-duration').text().replace(':', '')));
    }
    else {
        $("#player").jPlayer("playHead", parseInt(futureProgress, 10));
    }
}
//处理按键按下事件(因此用户可以按住按键继续)
$(文档).keydown(函数(e){
//倒带
如果(e.keyCode==37&&(!倒带)){
倒带=真;
//暂停播放
$(“#player”).jPlayer(“暂停”);
倒带轨道();
rwaction=window.setInterval(函数(){RewindTrack()},500);
}
否则如果(e.keyCode==39&&(!快进)){
快进=真;
//暂停播放
$(“#player”).jPlayer(“暂停”);
FastforwardTrack();
ffaction=window.setInterval(函数(){fastfrowardTrack()},500);
}
});
//结束行动
$(文档).keyup(函数(e){
//倒带
如果(e.keyCode==37){
倒带=假;
窗口清除间隔(rwaction);
$(“#player”).jPlayer(“暂停”);
}
否则如果(e.keyCode==39){
快进=假;
窗口清除间隔(ffaction);
$(“#player”).jPlayer(“暂停”);
}
});
//相关功能
函数GetPlayerProgress(){
返回($('.jp播放栏').width()/$('.jp搜索栏').width()*100);
}
//手柄倒带
函数RewindTrack(){
//获取当前进度和减量
var currentProgress=GetPlayerProgress();
//倒带10%的音轨长度
var futureProgress=当前进度-10;
//如果超过起始点-停止倒带并暂停
如果(未来进度=100){
快进=假;
窗口清除间隔(ffaction);
$(“#player”).jPlayer(“playHead”,parseInt($('.jp duration').text().replace(':','');
}
否则{
$(“#player”).jPlayer(“playHead”,parseInt(futureProgress,10));
}
}

(使用左箭头进行倒带,使用右箭头进行快进)

我决定实施自己的解决方案,目前看来效果不错。我想我会分享它,以防其他人遇到这样的问题

恕我直言。这只是一个概念证明:

必要的Javascript:

//Handles the key down event (so the user can hold a key down to continue)
$(document).keydown(function (e) {
    //Rewind
    if (e.keyCode == 37 && (!rewinding)) {
        rewinding = true;
        //Pause the player
        $("#player").jPlayer("pause");
        RewindTrack();
        rwaction = window.setInterval(function () { RewindTrack() }, 500);
    }
    else if (e.keyCode == 39 && (!fastforward)) {
        fastforward = true;
        //Pause the player
        $("#player").jPlayer("pause");
        FastforwardTrack();
        ffaction = window.setInterval(function () { FastforwardTrack() }, 500);
    }
});
//Ends the action
$(document).keyup(function (e) {
    //Rewind
    if (e.keyCode == 37) {
        rewinding = false;
        window.clearInterval(rwaction);
        $("#player").jPlayer("pause");
    }
    else if (e.keyCode == 39) {
        fastforward = false;
        window.clearInterval(ffaction);
        $("#player").jPlayer("pause");
    }
});

//Related function
function GetPlayerProgress() {
    return ($('.jp-play-bar').width() / $('.jp-seek-bar').width() * 100);
}

//Handles rewinding
function RewindTrack() {
    //Get current progress and decrement
    var currentProgress = GetPlayerProgress();
    //Rewinds 10% of track length
    var futureProgress = currentProgress - 10;
    //If it goes past the starting point - stop rewinding and pause
    if (futureProgress <= 0) {
        rewinding = false;
        window.clearInterval(rwaction);
        $("#player").jPlayer("pause", 0);
    }
    //Continue rewinding
    else {
        $("#player").jPlayer("playHead", parseInt(futureProgress, 10));
    }
}

//Fast forwards the track
function FastforwardTrack() {
    //Get current progress and increment
    var currentProgress = GetPlayerProgress();
    //Fast forwards 10%
    var futureProgress = currentProgress + 10;
    //If the percentage exceeds the max - stop fast forwarding at the end.
    if (futureProgress >= 100) {
        fastforward = false;
        window.clearInterval(ffaction);
        $("#player").jPlayer("playHead", parseInt($('.jp-duration').text().replace(':', '')));
    }
    else {
        $("#player").jPlayer("playHead", parseInt(futureProgress, 10));
    }
}
//处理按键按下事件(因此用户可以按住按键继续)
$(文档).keydown(函数(e){
//倒带
如果(e.keyCode==37&&(!倒带)){
倒带=真;
//暂停播放
$(“#player”).jPlayer(“暂停”);
倒带轨道();
rwaction=window.setInterval(函数(){RewindTrack()},500);
}
否则如果(e.keyCode==39&&(!快进)){
快进=真;
//暂停播放
$(“#player”).jPlayer(“暂停”);
FastforwardTrack();
ffaction=window.setInterval(函数(){fastfrowardTrack()},500);
}
});
//结束行动
$(文档).keyup(函数(e){
//倒带
如果(e.keyCode==37){
倒带=假;
窗口清除间隔(rwaction);
$(“#player”).jPlayer(“暂停”);
}
否则如果(e.keyCode==39){
快进=假;
窗口清除间隔(ffaction);
$(“#player”).jPlayer(“暂停”);
}
});
//相关功能
函数GetPlayerProgress(){
返回($('.jp播放栏').width()/$('.jp搜索栏').width()*100);
}
//手柄倒带
函数RewindTrack(){
//获取当前进度和减量
var currentProgress=GetPlayerProgress();
//倒带10%的音轨长度
var futureProgress=当前进度-10;
//如果超过起始点-停止倒带并暂停
如果(未来进度=100){
快进=假;
窗口清除间隔(ffaction);
$(“#player”).jPlayer(“playHead”,parseInt($('.jp duration').text().replace(':','');
}
否则{
$(“#player”).jPlayer(“playHead”,parseInt(futureProgress,10));
}
}
(使用左箭头进行倒带,使用右箭头进行快进)

$(“#播放器”).jPlayer(“暂停”,0);这在ipad/iphone上不起作用。你能帮我吗?$(“#player”).jPlayer(“暂停”,0);这在ipad/iphone上不起作用。你能帮我吗?