Ogg Opus richtig verwenden im HTML-Audio-Element
Lacher des Tages: Den Podcast Alternativlos gibt es jetzt auch im Audioformat Opus und Fefe erzählt dazu Folgendes:
Die Browser-Integration funktioniert im Moment nur in Firefox 15 und neuer, und die Selektion innerhalb des Audio-Tags funktioniert nicht, und außerdem haben auch noch Ogg Vorbis und Ogg Opus den gleichen MIME-Type, daher sah ich mich gezwungen, eine stinkende Javascript-Browserweiche für Firefox 15 einzubauen.
Da hat wohl jemand das Memo die Doku nicht gelesen! Laut HTML-Standard und RFC 4281 kann man hier nämlich durchaus unterscheiden – in diesem Fall gehört ins type
-Attribut der <source>
-Elemente audio/ogg; codecs=vorbis
(RFC 5334) oder audio/ogg; codecs=opus
(Opus-IETF-Draft). Hier ist die Demo.
Nur fürs Protokoll, so geht das:
<audio>
<source src=opus.opus type="audio/ogg; codecs=opus">
<source src=vorbis.oga type="audio/ogg; codecs=vorbis">
<source src=mp3.mp3 type="audio/mpeg">
</audio>
Bei Alternativlos 27 sieht das übrigens so aus:
<script>
var codec="ogg"
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent) && RegExp.$1>=15)
codec="opus"
</script>
<audio controls preload=none style="padding-top:70px">
<script>
document.write('<source src="http://alternativlos.cdn.as250.net/alternativlos-27.',codec,'" type="audio/ogg">')
</script>
<noscript>
<source src="http://alternativlos.cdn.as250.net/alternativlos-27.ogg" type="audio/ogg">
</noscript>
<source src="http://alternativlos.cdn.as250.net/alternativlos-27.mp3" type="audio/mp3">
[Browser zu antik]
</audio>
Warum das schlecht ist, liegt vor Allem an der Browserweiche: Firefox 15 ist nicht der einzige Browser mit Opus-Unterstützung, Opera 12 kann das auch; wegen solcher Fälle sollte man Daten deklarativ abliefern. Nebenbei: Für die Ermittlung unterstützter Formate existiert canPlayType()
.
Mit den Worten von Jamie Zawinski:
Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.
Fefe wird schon wissen was er da tut. Fefe ist schließlich foll kluck.
Fefe meinte per Email, bei ihm ginge es ohne die Browserweiche nicht in Chrome. Nur konnte ich das auf keinem Betriebssystem nachvollziehen.
Hast du denn auch alle Apple-Systeme durch?
Ich habe ein paar Browser-Betriebssystem-Kombinationen getestet bzw. testen lassen. Hier die Resultate: