2013-06-18 13 views
5

Tworzymy internetowy edytor muzyki i mikser w oparciu o Web Audio api. Użytkownicy mogą łączyć ze sobą wiele ścieżek, ścieżek przycinania itp. Faktyczne zmieszanie utworów wymaga jednoczesnego odtwarzania wszystkich źródeł.Jak skompresować wiele źródeł/ścieżek Web Audio w jeden?

Chcemy mieć możliwość dodania opcji zapisania miksu i udostępnienia go do pobrania na komputer użytkownika. Czy jest jakiś sposób na zrobienie tego z przodu (jak połączenie wszystkich źródeł z jednym węzłem docelowym/eksportowym), czy nawet backend (używamy RoR)?

+0

Z pewnością jest to możliwe z tyłu, ale musisz przesłać dane miksu i wszystkie pliki audio na serwer, jeśli nie ma ich w pobliżu. –

Odpowiedz

3

RecorderJS robi dokładnie to, co trzeba, i nie mógłby być łatwiejszy w obsłudze . Naprawdę świetna biblioteka.

https://github.com/mattdiamond/Recorderjs

PS: Zajrzyj do OfflineAudioContext i odpowiedz na to pytanie (Web audio API: scheduling sounds and exporting the mix), aby uzyskać informacje na temat miksowania dźwięku w czasie szybszym niż w czasie rzeczywistym.

+0

Niesamowite, wygląda dokładnie to, czego potrzebujemy i nie wydaje się, że musimy zmodyfikować większość naszego istniejącego kodu. Dzięki za pomoc. – jz999

0

Dane użytkowników wyglądają po stronie klienta?

Zasadniczo podczas konwertowania danych z base64 na daneURI, dane są wyświetlane inline, dzięki czemu można je dodać 1 na 1 do jednego obiektu typu blob i pobrać.

Jednak ta metoda sprawdza się tylko w przypadku plików małych, powodując awarię i zamrożenie w przypadku większości przeglądarek. Jest to dobre tylko w przypadku rozmiaru bloba mniejszego niż 10 MB po niektórych testach osobistych, na pewno wkrótce będzie to lepsze.

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

lub

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

Prawdopodobnie nie na swój sposób, tylko pomysł, ale projekt jest interesujący;)

+0

Co z transmisją na żywo? Czy mogę dodać dane 1 do 1 w strumieniu? – IvRRimUm

Powiązane problemy