Est-il possible de lire des flux de radio Internet shoutcast (ou certains) avec html5?
J'ai donc le code suivant:
<html>
<body>
<audio src="http://shoutcast.internet-radio.org.uk:10272/" />
</body>
</html>
Je l'enregistre en tant que page HTML et démarre mon navigateur (Google chrome 4.0.249.78, safary ou FF)
Mais ça ne joue pas/ça marche! (
Et il ne fonctionne avec aucune autre radio Internet que j'ai essayé de jouer! (
Pourquoi!?! Qu'est-ce que je fais mal?
btw: from HTML5 (y compris les ajouts de prochaine génération encore en développement) 2.6.1 Concepts de protocole Les agents utilisateurs peuvent implémenter une variété de protocoles de transfert, mais cette spécification définit principalement le comportement en termes de HTTP. [HTTP]
La méthode HTTP GET est équivalente à l'action de récupération par défaut du protocole. Par exemple, RETR dans FTP. De telles actions sont idempotentes et sûres, en termes HTTP.
Les codes de réponse HTTP sont équivalents aux statuts d'autres protocoles qui ont les mêmes significations de base. Par exemple, une erreur "fichier non trouvé" équivaut à un code 404, une erreur de serveur équivaut à un code 5xx, etc.
Les en-têtes HTTP sont équivalents aux champs dans d'autres protocoles qui ont la même signification de base. Par exemple, les en-têtes d'authentification HTTP sont équivalents aux aspects d'authentification du protocole FTP.
Vous ne pouvez pas le faire avec ShoutCast, mais avec Icecast et le client edcast, vous pouvez diffuser des vorbis en direct via HTML5 <audio>
tag. Il suffit de le pointer vers http://your-url.com:port/stream.ogg : p
Ajoutez un point-virgule à la fin de la demande http
. Il IS le protocole défini par shoutcast pour remplacer sa détection de navigateur. Comme cet exemple:
<audio controls src="http://shoutcast.internet-radio.org.uk:10272/;"></audio>
HTML5 ne spécifie pas les formats audio (progressifs ou en streaming) que le lecteur doit prendre en charge. C'est au navigateur de le déterminer, en fonction de la demande et de la faisabilité de la mise en œuvre. Dans les versions antérieures, nous avons essayé de spécifier quelques codecs et formats de base que tous les navigateurs doivent prendre en charge, mais chacun des formats possibles a amené certains fournisseurs de navigateurs à refuser de l'implémenter.
Les éléments suivants semblent fonctionner dans Safari (4.0.4, WebKit nightly 6531.21.10, r54538, Mac OS X 10.6.2), mais pas Chrome ou Firefox:
<!DOCTYPE html>
<audio controls src="http://shoutcast.internet-radio.org.uk:10272/"></audio>
(Notez que <audio>
nécessite une balise de fin dans la sérialisation HTML, il ne peut pas utiliser une balise à fermeture automatique de style XML, et je dois inclure controls
ou autoplay
pour démarrer réellement l'audio)
Cela est probablement dû au fait que Safari obtient la prise en charge de Shoutcast "gratuitement" car il utilise simplement QuickTime pour gérer toutes les URL audio et vidéo qui lui sont fournies, et QuickTime prend déjà en charge Shoutcast. Cela peut également conduire à des bogues étranges, car l'implémentation HTTP de QuickTime est, eh bien, excentrique , pour le dire gentiment.
Je suggère de déposer des bogues demandant le support de Shoutcast dans les navigateurs qui ne le prennent pas en charge. Voici les suiveurs de bogues pour Firefox (Gecko/Mozilla) , Chrome (Chromium) , et Safari (si cela ne fonctionne pas sur Windows , ou quelque chose comme ça).
<!DOCTYPE html>
<audio controls src="http://baldyradio.com:8010/;"></audio>
Cela fonctionne dans la version finale d'IE9, triste que l'on ne puisse pas en dire autant de FireFox 4!
eh bien j'ai vérifié les stations ogg_vorbis. J'ai téléchargé une liste de lecture et l'ai ouverte dans le bloc-notes, et j'ai copié l'URL d'un flux. Donc, si vous voulez le tester, copiez-le dans un fichier vide et nommez-le quelque chose.html.
<!DOCTYPE html>
<html>
<head>
<title>audio testing live stream!</title>
</head>
<body>
<audio controls="controls" autoplay="autoplay" src="http://oggvorbis.tb-stream.net:80/technobase.ogg">
</audio>
</body>
</html>
c'est ça!
BB
lecture de la spécification audio HTML 5 (http://www.w3schools.com/html5/html5_audio.asp) Le W3C décrit les formats (MP3 ou OGG) pris en charge par les navigateurs
Ce que je ferais, c'est d'avoir un serveur icecast (pas ShoutCast) en streaming un MP3 et un flux OGG
en utilisant javascript, détecter le type de navigateur - http://www.javascripter.net/faq/browsern.htm
si (le navigateur ne prend pas en charge HTML5) {imprimer un message - UTILISER un nouveau navigateur}
if (le navigateur prend en charge le streaming HTML5 et OGG (utilisez la liste du W3c)) {utilisez le flux OGG du serveur icecast dans la balise SRC}
if (le navigateur prend en charge le streaming MP3 HTML5 (utilisez la liste du W3C)) {utilisez le flux MP3 du serveur icecast dans la balise SRC}
je pense que cela couvrirait tous les principaux navigateurs et résoudrait la plupart des problèmes des gens que vous trouverez probablement à l'avenir, ce sera redondant car plus de navigateurs prennent en charge
<audio controls src="http://example.com:8000/mountpath;"></audio>
Les messages ci-dessus donnent la bonne réponse, bien qu'ils ne mentionnent pas l'utilisation du slash. Assurez-vous que /; est là après l'URL et le port du flux.
<audio src="http://shoutcast.internet-radio.org.uk:10272/;" />
Eh bien, Firefox et Opera ne prennent pas en charge les codecs non libres tels que mp3 (comme avec le Opera 10,5 alpha, FF 3.5 et versions ultérieures ne prennent en charge que PCM wav et Ogg Vorbis pour l'audio.) Je pense que Chrome et Safari prennent en charge les MP3, cependant.
Le problème suivant est que votre URL semble pointer vers une page Web décrivant le flux, pas vers un flux.
Enfin, pour autant que je sache, personne n'a implémenté un analyseur de liste de lecture pour l'élément audio (la spécification mentionne uniquement les fichiers audio, pas les listes de lecture), ce qui est un problème ici, car même lorsque vous cliquez sur "écouter", vous obtenez plutôt une liste de lecture qu'un flux brut.
Oui, vous pouvez jouer à ShoutCast2 Je l'utilise comme ça de cette façon
<audio preload="none" autoplay="autoplay" controls="controls">
<source src="http://178.32.62.172:9079/stream" type="audio/mpeg">
Your browser does not support this player, please update the version
</audio>