Tôi đang cố gắng sử dụng decodeAudioData để giải mã và phát lại phần ban đầu của tệp mp3 lớn hơn, trong javascript. Cách tiếp cận đầu tiên, thô lỗ của tôi là cắt một số byte ra khỏi đầu mp3 và cho chúng giải mãAudioData. Không ngạc nhiên là điều này không thành công.Xác định 'chunk mp3 hợp lệ' cho decodeAudioData (API WebAudio)
Sau một số lần đào, có vẻ như decodeAudioData chỉ có thể hoạt động với 'các đoạn mp3 hợp lệ' như được ghi trong tài liệu Fair Dinkum Thinkum, here.
Tuy nhiên không có sự giải thích rõ về cấu trúc của một đoạn mp3 hợp lệ (tác giả của bài nói trên không đi sâu vào điều này). Tôi nhận thức được các bộ tách mp3 khác nhau tồn tại ở đó nhưng tôi muốn tiếp cận chương trình này. (Tôi đang cố gắng để thực hiện một loại 'người đàn ông nghèo của streaming' bằng cách sử dụng nodejs ở phía máy chủ).
Vì vậy, chia nhỏ trên tiêu đề khung mp3 là đủ hay tôi cần phải làm nhiều hơn? (có lẽ 'đóng' mỗi đoạn bằng cách chắp thêm một số dữ liệu vào cuối?) Làm thế nào về 'hồ chứa byte'? Điều này có gây ra vấn đề không? Đối với hồ sơ, tôi hiện đang làm việc với 128kbps cbr mp3s. Điều này có đơn giản hóa quá trình theo bất kỳ cách nào không?
Mọi thông tin về những gì decodeAudioData mong đợi là dữ liệu vaild sẽ được đánh giá cao.
Cảm ơn bạn.
PS: Tôi nhận ra rằng đây có lẽ là một yêu cầu để làm rõ trên Fair Dinkum Thinkum's post nhưng danh tiếng thấp của tôi là giữ cho tôi không đăng một bình luận. Vì vậy, tôi không thể thấy cách khác để làm điều đó nhưng với một câu hỏi mới. Cảm ơn một lần nữa.
Đoạn mp3 là một khung hình, đại diện cho 0,028 giây âm thanh. Kích thước của khung đó là biến, tùy thuộc vào tốc độ bit của âm thanh được mã hóa. CBR mp3 làm cho mọi việc trở nên dễ dàng hơn, vì kích thước khung hình sẽ không đổi trong suốt tệp và bạn có thể tính toán sai số của bất kỳ dấu thời gian cụ thể nào trong âm thanh. –
Biến điều này không đúng, ví dụ, các tệp mp3 128kbps chứa các khung hình 417 byte cũng như các khung 418 byte. (một số khung chứa byte thừa như đệm) – biril