如果要解碼音頻數據,createMediaElementSource()不工作在移動設備上,但是createBufferSource()方法是否工作正常:轉換MediaElementAudioSourceNode到AudioBufferSourceNode
此代碼的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});
}
在我的情況I H ave來自視頻播放器的音頻源將被解碼,這是一個MediaElementAudioSourceNode,我需要將其轉換爲AudioBufferSourceNode以便讓我的代碼在移動設備上工作,換句話說,是否可以將sourceT1至sourceT2?
任何想法如何做到這一點?
編輯:在此基礎上answer ,不幸的是,我認爲這是不可能做到這一點
我認爲它的使命不可能,因爲它不被支持。 –
你需要訪問哪些視頻文件?你可以使用file-api嗎?之後你想怎麼處理音頻?也許有另一種方法... –
我需要獲取遠程音頻流的字節頻率,問題是,當我使用createMediaElementSource()創建媒體時,getByteFrequencyData()在移動設備中不起作用。現在我試圖找到另一種方式,你知道任何解決方案可視化流音頻(.m3u8)的頻率? –