2013-06-18 29 views
5

Chúng tôi đang tạo trình chỉnh sửa âm nhạc dựa trên web và trình trộn dựa trên api Âm thanh trên web. Người dùng có thể kết hợp với nhau nhiều bài hát, cắt các bài hát, vv Việc trộn thực sự với nhau của các bài hát chỉ liên quan đến việc phát lại tất cả các nguồn cùng một lúc.Làm cách nào để nén nhiều nguồn/bản nhạc trên Web thành một?

Chúng tôi muốn có thể thêm tùy chọn để lưu kết hợp và cung cấp tùy chọn để tải xuống máy tính của người dùng. Có cách nào để thực hiện điều này trên giao diện người dùng (như kết nối tất cả các nguồn với một nút đích/xuất) hay thậm chí là chương trình phụ trợ (chúng tôi đang sử dụng RoR) không?

+0

Chắc chắn có thể thực hiện được ở mặt sau, nhưng bạn cần phải gửi dữ liệu hỗn hợp của mình và tất cả các tệp âm thanh đến máy chủ nếu không có sự cố. –

Trả lời

3

RecorderJS thực hiện chính xác những gì bạn cần, và nó không thể có thể được dễ dàng hơn để sử dụng . Thư viện thực sự tuyệt vời.

https://github.com/mattdiamond/Recorderjs

P.S. Hãy xem xét OfflineAudioContext và câu trả lời của tôi cho câu hỏi này (Web audio API: scheduling sounds and exporting the mix) để biết thông tin về cách thực hiện phân tích âm thanh nhanh hơn so với thời gian thực.

+0

Tuyệt vời, điều này trông giống như những gì chúng tôi cần, và có vẻ như chúng tôi phải sửa đổi rất nhiều mã hiện có của chúng tôi. Cảm ơn đã giúp đỡ. – jz999

0

Dữ liệu người dùng có vẻ như ở phía khách hàng?

Về cơ bản khi chuyển đổi dữ liệu với base64 thành dataURI, dữ liệu được in trực tuyến để chúng có thể thêm 1 by 1 togheter vào một đối tượng blob duy nhất và được tải xuống.

Nhưng phương pháp này chỉ tốt cho các tệp nhỏ, gây ra sự cố và đóng băng với hầu hết các trình duyệt, điều này chỉ tốt cho kích thước blob dưới 10mb sau một số thử nghiệm personnal, điều này sẽ sớm tốt hơn.

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

hoặc

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

Có lẽ không phải là cách của bạn, chỉ cần một ý tưởng nhưng dự án của bạn là thú vị;)

+0

Còn về phát trực tiếp thì sao? Tôi có thể thêm các dữ liệu 1 của 1 trong một dòng? – IvRRimUm

Các vấn đề liên quan