Das Pufferproblem | Android, iPhone, audio, HTML5

Wenn ihr an einer mobilen Seite schreibt, die mehrere Audio- oder Videodateien zur Verfügung stellt, seid ihr vielleicht schon einmal auf dieses Problem gestoßen: Sobald eine Mediadatei abgespielt wird, lädt sie komplett. Und zwar auch dann, wenn man auf Pause drückt. Der Knackpunkt: Das gilt auch für Streams.

Das mag jetzt nicht so tragisch sein – so lange man im WLAN ist, oder bereits gedrosselt. Für alle anderen verbraucht es aber wertvolles Datenvolumen. Entsprechend sollte eine Datei aufhören zu laden, sobald man den Player stoppt. Wer trotzdem die komplette Datei haben möchte, kann sie sich über einen separaten Link herunterladen.

Nun stellt der audio-Tag aber keine Stop-Funktion zur Verfügung. Ob das jetzt ein Entwurffehler oder Absicht ist, sei mal dahingestellt. Das Vorgehen, um das Weiterladen dennoch zu unterbinden, ist daher wie folgt:

  1. Player eine leere Quelle zuweisen
  2. Leere Quelle abspielen
  3. Player löschen (!)
  4. Player wieder an das Dokument anpfriemeln
  5. Neuen Player mit der alten Quelle versehen

In der Praxis könnte es in etwa so aussehen:

Elegant ist das leider nicht, aber nur so wird gewährleistet, dass das Laden auch aufhört.

Kommentar verfassen