Gibt es eine crossbrowser-Lösung für die Wiedergabe von flac? (oder ist es theoretisch möglich zu machen)
Nicht interessiert silverlight. Flash - /javascript - /html5-Lösungen akzeptabel sind.
Wenn Sie nicht wissen, wie Lösungen, könnten Sie bitte sagen, ist es möglich zu machen, oder nicht?
- Unterstützung für FLAC landete in chrome vor kurzem. Der einzige Weg, zu wissen, wo es funktioniert, ist durch die überprüfung manuell. Hier ist ein Ort um zu helfen.
- Hinzugefügt native Unterstützung für FLAC in Firefox 51.0
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine einfache Google-Suche führte mich zu diesen Seiten:
Aurora und FLAC.js — audio-codecs mit der Web Audio API
Einführung FLAC.js: Eine Reine JavaScript-FLAC Decoder
Ob Sie es glauben oder nicht, es war gar nicht so schwer.
Fast vergessen:
Überprüfen Sie HTML5Test zu vergleichen Browsern Leistung/Kompatibilität mit der
<audio>
tag und es sind Geschwister.Hatte, wenn ich zu spielen FLAC-in-browser, mein Ausgangspunkt war auch die Aurora framework.
Aber die Aurora-Spieler ausgerichtet ist, um mit ScriptProcessorNode zu entschlüsseln Stücke von audio-on-the-fly. Das hat nicht pan out für viele Gründe.
Decodierung offline: Flac zu Wave
Meine Lösung war zum decodieren der Flac to raw 16bit PCM-audio, mit einer abgespeckten Aurora.js Assset-Klasse + Abhängigkeiten.
Blick in die Quelle für Asset.Holen Sie sich( 'format', callback ), Asset.fromFile, und Asset.der Prototyp.decodeToBuffer.
Als Nächstes nehmen Sie die audio-Daten, zusammen mit der extrahierten Werte für die sample-rate und der Kanalanzahl und Aufbau einer WAVE-Datei. Diese können gespielt werden, mit einem HTML5-audio-element gesendet, wenn eine audio-Graphen mit createMediaElementSource, oder absolut alles, was Sie tun können, mit nativ unterstützten audio-Formate.
Hinweis: Ersetzen Sie die clz-Funktion in decoder.js mit der einheimischen Math.clz32 um die Leistung zu steigern, und polyfill clz32 für alte Browser.
Nachteil
Die dekodierzeit. Nach etwa 5 Sekunden auf ~100% CPU für eine "Durchschnittliche" 4min song.
Vorteile
Hier ist die Funktion zum erstellen der WAVE-header, und schalten Sie die rohen PCM-Daten in etwas, das der browser nativ spielen.