2013-06-15 10 views
8

HTML5のファイルではなくバイトから音楽を再生する方法はありますか?bytearrayの音楽をhtml5で再生する

音楽のストリームをストリームしてライブで再生する必要があります。

+0

HTML5オーディオ缶ストリームを再生すると、icecastサーバーでうまく動作します – r043v

答えて

4

この

var dogBarkingBuffer = null; 
// Fix up prefixing 
window.AudioContext = window.AudioContext || window.webkitAudioContext; 
var context = new AudioContext(); 

function loadDogSound(url) { 
    var request = new XMLHttpRequest(); 
    request.open('GET', url, true); 
    request.responseType = 'arraybuffer'; 

    // Decode asynchronously 
    request.onload = function() { 
    context.decodeAudioData(request.response, function(buffer) { 
     dogBarkingBuffer = buffer; 
    }, onError); 
    } 
    request.send(); 
} 

を確認してくださいオーディオファイルデータは(テキストではなく)バイナリですので、我々は「arraybuffer」にリクエストのresponseTypeを設定します。 ArrayBuffersの詳細については、XHR2に関するこの記事を参照してください。

(デコードされていない)オーディオファイルデータが受信されると、後でデコードするために保持したり、AudioContext decodeAudioData()メソッドを使用してすぐにデコードすることができます。このメソッドは、request.responseに格納されているオーディオファイルデータのArrayBufferを取得し、非同期にデコードします(メインのJavaScript実行スレッドをブロックしません)。

decodeAudioData()が終了すると、デコードされたPCMオーディオデータをAudioBufferとして提供するコールバック関数を呼び出します。

、ここで参照==>HML5 audio

UPDATE: それはFirefoxとクロムの使用上で動作させるために:

context= typeof AudioContext !== 'undefined' ? new AudioContext() : new webkitAudioContext(); 

の代わり:

var context = new AudioContext(); 
+0

Google Chrome専用です! – Ata

+0

@AtaがFirefoxを動作させるように更新されました – Muath

関連する問題