2017-06-19 5 views
0

Wir versuchen, WAV-Dateien über das HTML5-Audio-Tag wiederzugeben. Wenn wir eine 5-kHz-16-Bit-Mono-WAV-Datei liefern, funktioniert die Wiedergabe einwandfrei. Wenn wir eine 2,5-kHz-16-Bit-Mono-WAV-Datei bereitstellen, verweigern Chrome und Firefox die Wiedergabe. Die Steuerelemente werden angezeigt, aber beim Klicken auf die Wiedergabeschaltfläche passiert nichts. Chrome scheint nicht zu bestimmen, wie lange die WAV-Datei ist und zeigt die verstrichene Zeit/Gesamtanzahl nicht an.HTML5-Audio-Tag und Niederfrequenz-WAV-Dateien

Googling hat nichts über eine untere Grenze für die Häufigkeit von Audiodaten für HTML5-Audio offenbart. In der Tat scheint es eine nützliche Funktion zu sein, Niederfrequenzaudio abzuspielen, da es keinen Sinn macht, mehr Audiodaten als nötig zu übertragen, wenn keine höheren Frequenzen benötigt werden.

Die einzigen Optionen, die wir uns vorstellen können, sind 5kHz WAV-Dateien (schlecht, wir haben Millionen von Dateien und das verschwendet 50% Speicherplatz) oder re-sample im laufenden Betrieb mit Javascript irgendwie. Resampling auf dem Server würde zu viel Last erzeugen.

Antwort

0

Nach vielen Experimenten scheint dies eine Einschränkung der Browser zu sein. Damit HTML5-Audio funktioniert, muss Audio gemischt werden. Das Mischen beinhaltet das erneute Abtasten auf eine gemeinsame Frequenz. Resampling beinhaltet Tiefpassfilterung, und von dem, was ich aus den Chromium/Firefox-Quellcodes ersehen kann, gibt es eine untere Grenze für den Tiefpassfilter, der verhindert, dass WAV-Dateien mit sehr niedriger Frequenz abgespielt werden.

Die einzige Lösung bestand darin, die WAV-Datei selbst auf 5 kHz zu resampeln.