2013-06-18 6 views
5

Stiamo realizzando un editor musicale e un mixer basati sul web basati sull'audio Web Audio. Gli utenti possono mixare più tracce, ritagliare tracce, ecc. L'effettivo mixaggio delle tracce richiede solo la riproduzione di tutte le sorgenti contemporaneamente.Come si comprimono più origini/tracce audio Web in uno?

Vogliamo essere in grado di aggiungere l'opzione per salvare il mix e renderlo disponibile per il download sul computer dell'utente. C'è un modo per farlo sul front-end (come connettere tutte le fonti a un nodo destinazione/esportazione), o anche il backend (stiamo usando RoR)?

+0

È sicuramente fattibile sul back-end, ma è necessario inviare i dati del mix e tutti i file audio al server se non ci sono già. –

risposta

3

RecorderJS fa esattamente quello che ti serve, e non potrebbe essere più facile da usare . Davvero, davvero una grande biblioteca.

https://github.com/mattdiamond/Recorderjs

P.S. Esaminare OfflineAudioContext e la mia risposta a questa domanda (Web audio API: scheduling sounds and exporting the mix) per informazioni su come eseguire un mixdown più veloce del tempo reale del proprio audio.

+0

Impressionante, sembra esattamente quello di cui abbiamo bisogno, e non sembra che dobbiamo modificare molto del nostro codice esistente. Grazie per l'aiuto. – jz999

0

I dati degli utenti sembrano essere sul lato client?

Fondamentalmente durante la conversione di dati con base64 in dataURI, i dati vengono visualizzati in linea in modo che possano essere aggiunti 1 per 1 insieme in un singolo oggetto blob e scaricati.

Ma questo metodo è buono solo per i file Smalls, causando di crash e di congelamento con la maggior parte del browser, questo è solo un bene per dimensioni blob meno di 10mb, dopo alcuni test personnal, questo sarà meglio presto di sicuro.

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

o

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

Probabilmente no la tua strada, solo un'idea, ma il progetto è interessante;)

+0

Che dire del livestreaming? Posso aggiungere i dati 1 per 1 in un flusso? – IvRRimUm