2016-04-19 1 views
1

html5オーディオ要素で 'loop'属性を使用すると、曲が再生されるときにギャップがあるようです。このギャップを取り除く簡単な方法はありますか?htmlオーディオタグで曲が再生されると、どのようにギャップを取り除くことができますか?

コード:フィドル例を作業

<audio controls loop preload> 
    <source src="http://www.phatdrumloops.com/audio/wav/ifineededs.wav" type="audio/wav"> 
Your browser does not support the audio element. 
</audio> 

https://jsfiddle.net/rmwumaz7/

答えて

2

これは実際には、オーディオタグで問題となっています。ただし、このような何かをすることによって効果を最小限にしようとすることができます:

var audio = new Audio('http://www.phatdrumloops.com/audio/wav/ifineededs.wav') 
audio.addEventListener('timeupdate', function(){ 
      var buffer = .1 
      if(this.currentTime > this.duration - buffer){ 
       this.currentTime = 0 
       this.play() 
      }}, false); 
audio.play() 

編集:あなたのコメントによると、私は少し深く掘ってきました。これは私が見つけたものです:ここ https://github.com/Hivenfour/SeamlessLoop

問題は、あなたがここにフィドルを参照してくださいミリ秒でトラックの正しい長さ(ループにしたいトラック)

を提供する必要があります。 https://jsbin.com/simuvoduhi/edit?html,js,output

+0

これは役に立ちませんでした。今回は.wavファイルを使用してこのソリューションと組み合わせて試しました。https://jsfiddle.net/rmwumaz7/3/ –

+0

Mhm。正直言って、私は全く遅れがありません。私のマックの完璧なループ。 – Christian

+0

私はそれらの間に200msの遅延がありますが、ほぼ完璧ですが、まだギャップがあることに気付きます。ギターでノートを演奏しようとすると、これは目立ちます。 –

関連する問題