2013-06-15 17 views
8

Czy istnieje sposób na odtwarzanie muzyki z bajtów zamiast z pliku HTML 5?Odtwarzanie muzyki z bytearray w html5

Potrzebuję strumieniować bajty muzyczne i odtwarzać je na żywo.

+0

HTML5 audio może odtwarzanie strumienia, działa dobrze z serwerem icecast – r043v

Odpowiedz

4

proszę sprawdzić

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(); 
} 

audio danych plik jest binarny (nie tekst), więc możemy ustawić responseType na żądanie „arraybuffer”. Aby uzyskać więcej informacji o ArrayBuffers, zobacz ten artykuł o XHR2.

Po odebraniu (nieodkodowanych) danych pliku audio można go zachować w celu późniejszego odkodowania lub od razu można go dekodować, korzystając z metody AudioContext decodeAudioData(). Ta metoda pobiera ArrayBuffer danych pliku audio przechowywanych w request.response i dekoduje je asynchronicznie (nie blokując głównego wątku wykonywania JavaScript).

Po zakończeniu dekodowania AudioData() wywołuje funkcję wywołania zwrotnego, która dostarcza dekodowane dane audio PCM jako AudioBuffer.

i tutaj odniesienie ==>HML5 audio

UPDATE: do niech to działa na Firefox i wykorzystania Chrome:

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

zamiast:

var context = new AudioContext(); 
+0

robi to tylko dla Chrome Google! – Ata

+0

@Ata zaktualizowana do pracy z Firefoksem – Muath

Powiązane problemy