2016-04-22 2 views
0

をAudioBufferSourceNodeするために、モバイルデバイス上で動作していない変換します、しかしcreateBufferSource()メソッドが正常に動作しているMediaElementAudioSourceNodeはあなたがオーディオ・データ、createMediaElementSourceを(デコードする場合)

をこのコードは、ウェブブラウザで正常に動作していないが、モバイルデバイス:

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

どのようにすればいいですか?

EDIT:このanswerに基づき 、残念ながら私はあなたが言うことはありませんが、あなたがChromeを使用している場合、createMediaElementSourceは今作業する必要があり、それを

+0

それはサポートされていないので使えないと思います。 –

+0

どのビデオファイルにアクセスする必要がありますか?ファイルAPIを使用できますか?その後のオーディオで何をしたいですか?おそらく別の方法があります。 –

+0

リモートオーディオストリーミングのバイト周波数を取得する必要があります。問題は、createMediaElementSource()を使用してメディアを作成するときにgetByteFrequencyData()がモバイルデバイスで機能しないことです。今私は別の方法を見つけようとしていますが、ストリーミングオーディオ(.m3u8)の周波数を視覚化するための解決策はありますか? –

答えて

0

を行うことは不可能だと思います。ただし、最初にchrome:// flagsに移動して統合メディアパイプラインフラグを有効にする必要があります。

+0

モバイルデバイスでChromeを使用していますか? –

関連する問題