1

エレメントが AudioContext の createMediaElementSource で使用されている場合、ソースを動的に変更すると、オーディオ サウンドが歪みます (同時に 2 回再生するなど)。

エラーの最小限の例を次に示します。

var audio = document.getElementById('music');
var actx = new webkitAudioContext();
var node, processor = actx.createScriptProcessor(1024, 1, 1);
processor.onaudioprocess = function(e) { /* STUFF */ };
processor.connect(actx.destination);
audio.addEventListener('canplay', canPlayFired);
function canPlayFired(event)
{
    node = actx.createMediaElementSource(audio);
    node.connect(processor);
    audio.removeEventListener('canplay', canPlayFired);
}
$('a.changeMusic').click(function(e){
    e.preventDefault();
    audio.src = $(this).attr('href');
});

node.disconnect(0);動作する前に置くaudio.src = ...と、データは処理されなくなります。新しいコンテキストを作成するなど、多くのことを試しましたが、以前に設定した javascript ノードを消去しないようです。

どうすれば修正できるか知っていますか?

前もって感謝します。

4

1 に答える 1

1

これを見ることをお勧めします:jsbin.com/acolet/1

あなたが探しているのと同じことをしているようです。

この投稿からこれを見つけました。

于 2013-03-01T18:58:14.957 に答える