2013-06-18 12 views
5

Wir erstellen einen webbasierten Musikeditor und Mixer basierend auf der Web Audio API. Benutzer können mehrere Spuren zusammenmischen, Spuren beschneiden usw. Beim Mischen der Spuren müssen alle Quellen gleichzeitig wiedergegeben werden.Wie komprimiere ich mehrere Web Audio Quellen/Tracks in einem?

Wir möchten in der Lage sein, die Option zum Speichern der Mischung hinzuzufügen und sie für den Download auf den Computer eines Benutzers verfügbar zu machen. Gibt es eine Möglichkeit, dies am Frontend zu tun (wie zum Beispiel alle Quellen mit einem Ziel/Exportknoten zu verbinden), oder sogar das Backend (wir benutzen RoR)?

+0

Es ist sicherlich auf dem Back-End machbar, aber Sie müssen Ihre Mix-Daten und alle Audiodateien an den Server senden, wenn die nicht schon da sind. –

Antwort

3

RecorderJS tut genau das, was Sie brauchen, und es könnte nicht möglicherweise einfacher zu bedienen . Wirklich, wirklich großartige Bibliothek.

https://github.com/mattdiamond/Recorderjs

P. S. Schauen Sie in OfflineAudioContext und meine Antwort auf diese Frage (Web audio API: scheduling sounds and exporting the mix) für Informationen über eine schnellere als Echtzeit-Mixdown Ihrer Audio.

+0

Super, das sieht genau so aus, wie wir es brauchen, und es scheint nicht so, als müssten wir sehr viel von unserem existierenden Code modifizieren. Danke für die Hilfe. – jz999

0

Benutzerdaten scheint auf Client-Seite zu sein?

Grundsätzlich werden beim Konvertieren von Daten mit base64 in dataURI Daten inline angezeigt, sodass sie in einem einzelnen Blob-Objekt 1-zu-1 addiert und heruntergeladen werden können.

Aber diese Methode ist nur gut für kleine Dateien, verursacht Absturz und Einfrieren mit den meisten Browsern, das ist nur gut für Blob Größe weniger als 10 MB nach einigen persönlichen Tests, das wird bald besser sicher sein.

<audio controls><source src="data:audio/ogg;base64,BASE64.......BASE564......BASE64............."></audio> 

oder

<a href="data:audio/ogg;base64,BASE64...BASE64..BASE64....>Download</a> 

wahrscheinlich nicht die Art und Weise, nur eine Idee, aber das Projekt ist interessant;)

+0

Was ist mit Livestreaming? Kann ich die Daten 1 zu 1 in einem Stream hinzufügen? – IvRRimUm