2012-09-28 5 views
3

Je travaille avec l'API audio HTML5 pour lire le son. Cela fonctionne bien avec les fichiers mp3 réguliers, mais lors de l'utilisation d'un flux audio tel que http://95.173.167.24:8009, il ne peut pas être lu.Lecture de flux audio avec l'API audio

Voici le code que je utilise:

if('webkitAudioContext' in window) { 
    var myAudioContext = new webkitAudioContext(); 
    } 

    request = new XMLHttpRequest(); 
    request.open('GET', 'http://95.173.167.24:8009', true); 
    request.responseType = 'arraybuffer'; 
    request.addEventListener('load', bufferSound, false); 
    request.send(); 


    function bufferSound(event) { 
     var request = event.target; 
     var source = myAudioContext.createBufferSource(); 
     source.buffer = myAudioContext.createBuffer(request.response, false); 
     source.connect(myAudioContext.destination); 
     source.noteOn(0); 
    } 

Quelqu'un peut-il me diriger dans la bonne direction à ce sujet?

Toute aide est appréciée. Merci

+1

Le problème n'est probablement pas dans votre code, mais le fait que les serveurs SHOUTcast fournissent des réponses HTTP brisées. La plupart des navigateurs l'ignorent, mais d'autres non. Quel navigateur utilisez-vous? – Brad

+0

Oh, Ok, j'utilise la dernière version de Chrome – RyanDreggs

Répondre

3

Le problème est probablement que SHOUTcast détecte votre chaîne User-Agent en tant que navigateur. Il cherche une chaîne contenant Mozilla et dit "Oh, c'est un navigateur! Envoyez-leur le panneau d'administration."

Vous devez forcer l'utilisation du flux audio. Heureusement, cela se fait facilement en ajoutant un point-virgule à la fin de votre URL:

http://95.173.167.24:8009/; 

Notez que la chaîne User-Agent dans vos journaux sera MPEG OVERRIDE.

Cela fonctionnera pour la plupart des navigateurs. Certains navigateurs peuvent ne pas aimer les resopnses de type HTTP qui proviennent de SHOUTcast, mais cela vous permettra au moins de commencer.

+0

Sur une autre note, si vous ne pouvez pas obtenir ce fonctionnement comme vous le souhaitez, et que vous souhaitez un flux HTTP correct, j'ai un service disponible pour le test dès maintenant. http://www.audiopump.co/preview.php – Brad