1

オーディオ データをデコードする場合、createMediaElementSource() はモバイル デバイスでは機能しませんが、createBufferSource() メソッドは正常に機能します。

このコードは Web ブラウザーでは正しく機能しますが、モバイル デバイスでは機能しません。

var audioSource = new Audio();
audioSource.src= "Test.mp3";
var audioCtx = new AudioContext();
var sourceT1 = audioCtx.createMediaElementSource(audioSource); //This is the source audio
//My Decoding...

このコードは、Web ブラウザーとモバイル ブラウザーの両方で機能します。

var audioSource = new Audio();
var audioCtx = new AudioContext();
var sourceT2 = audioCtx.createBufferSource(); //This is the source audio
request = new XMLHttpRequest();
request.open('GET', 'Test.mp3', true);
request.responseType = 'arraybuffer';
request.onload = function() {
 var audioData = request.response;
audioCtx.decodeAudioData(audioData, function(myBuffer) {
 sourceT2.buffer = myBuffer;
//My Decoding...
 },
function(e){"Error with decoding audio data" + e.err});
}

私の場合、デコードするビデオ プレーヤーからのオーディオ ソースがあります。これは MediaElementAudioSourceNode であり、コードをモバイル デバイスで動作させるには、それを AudioBufferSourceNode に変換する必要があります。言い換えれば、それは可能ですか? sourceT1sourceT2に変換するには?

それを行う方法はありますか?

編集: この回答に基づいて、残念ながらそれは不可能だと思います

4

1 に答える 1

0

あなたは言いませんが、Chrome を使用している場合は、createMediaElementSource が機能するはずです。ただし、最初に chrome://flags に移動して、ユニファイド メディア パイプライン フラグを有効にする必要があります。

于 2016-05-18T16:51:49.600 に答える