如何使用AudioContext进行搜索

时间:2015-12-22 11:05:29

标签: javascript html5-audio

我想制作按钮,点击播放下一首/上一首歌,但是他们应该长时间寻找音乐。

我确实设法改变歌曲,但我找不到搜索方法。还有如何从头开始播放?

有没有办法确定自歌曲开始以来已经过了多少?我发现缓冲区有持续时间,但没有实际播放时间。

在init:

context = new (window.AudioContext || window.webkitAudioContext)()

播放歌曲:

var buffer = song.buffer
var source = context.createBufferSource()
source.buffer = song.buffer
source.connect(analysers.main)
source.start(0, offset || 0)

2 个答案:

答案 0 :(得分:5)

猜猜,你应该使用AudioBufferNode(它有能力进行搜寻) - https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start

此外,这个包装器可能很有用 - https://github.com/eipark/buffaudio

答案 1 :(得分:2)

使用 taphold API来实现长按事件。

$(function(){
  $( "your element" ).bind( "taphold", tapholdHandler );

  function tapholdHandler( event ){
   /*write your code here for seek forward */

  }
});

使用JQuery Timer

var mousedowntime;
    var presstime;
    $("button[id$='" + buttonID + "']").mousedown(function() {
        var d = new Date();
        mousedowntime = d.getTime();
    });
    $("button[id$='" + buttonID + "']").mouseup(function() {
        var d = new Date();
        presstime = d.getTime() - mousedowntime;
        if (presstime > 999/*You can decide the time*/) {
            //Do_Action_Long_Press_Event();
        }
        else {
            //Do_Action_Click_Event();
        }
    });

从头开始播放

function beginAudio(){
            audio.trigger('pause');
            audio.prop("currentTime",audio.prop("currentTime")-audio.prop("currentTime"));
            audio.trigger('play');
        }

或将当前时间设置为零,然后播放。

前进和后退使用

audio.prop("currentTime",audio.prop("currentTime")-5);// 5 secs backward
audio.prop("currentTime",audio.prop("currentTime")+5);// 5 secs forward