2015-12-22 3 views
11

私は、次の/前の曲をクリックして再生するボタンを作成したいと思いますが、長時間押せば音楽を探してください。AudioContextで検索する方法

私は曲を変更できましたが、シーク方法が見つかりませんでした。また、最初から再生させる方法は?

そして、曲の始めからどれぐらいの時間が経過したかを判断する方法はありますか?バッファーにはデュレーションがあることがわかりましたが、実際の再生時間はありません。初期化時に

:長押しイベントをacheiveする

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

答えて

4

ゲス、あなたは(それが求めて行う能力を持っている)AudioBufferNodeを使用する必要があります - https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start

また、このラッパーは便利かもしれない - https://github.com/eipark/buffaudio

+0

質問の第2部分にもお答えください。私たちはどれくらいの歌をしていますか?パーセントまたは何かで... – Akxe

+0

「AudiBufferNode」には 'duration'プロパティがあります。あなたはそれを使用しようとすることができます。 また、これは少し役に立ちます。http://stackoverflow.com/questions/11203773/how-can-i-get-the-html5-audios-duration-time –

+0

これは間違っています。「AudioBufferSourceNode」は検索できません'start'を複数回呼び出すことはできません)。 – ffxsam

2

使用taphold API:

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

曲を再生します。

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

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

    } 
}); 

使用jQueryのタイマー

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 
+0

私はオーディオ変数を持っていない、私はコンテキスト変数(typeof AudioContext)があります。そして、jQueryはありません。探し求めるのは問題の問題ではなく、audiocontextはサウンドが生成されてから停止しないので、audiocontextはcurrentTimeをカウントし始めます。 – Akxe

+0

あなたはオリジナルのオーディオ・コンテキストを表示できますか? '次の/前の曲をクリックして歌を歌う '.. –

関連する問題