Tôi đang làm việc trên một ứng dụng phải xử lý các tệp âm thanh. Khi sử dụng các tập tin mp3 tôi không chắc chắn làm thế nào để xử lý dữ liệu (dữ liệu tôi quan tâm là các byte âm thanh, những người đại diện cho những gì chúng ta nghe).Cách nhận dữ liệu âm thanh từ MP3?
Nếu tôi đang sử dụng tệp wav, tôi biết tôi có tiêu đề 44 byte và sau đó là dữ liệu. Khi nói đến một mp3, tôi đã đọc rằng chúng được tạo thành bởi các khung hình, mỗi khung có chứa một dữ liệu đầu trang và âm thanh. Có thể lấy tất cả dữ liệu âm thanh từ một tệp mp3 không?
Tôi đang sử dụng java (tôi đã thêm MP3SPI, Jlayer và Tritonus) và tôi có thể lấy các byte từ tệp, nhưng tôi không chắc chắn về những byte này đại diện hoặc cách xử lý .
Xin chào Jon, Cảm ơn câu trả lời nhanh của bạn! Trong đề xuất của bạn; 'decodedFormat' đại diện cho dữ liệu mp3 được giải mã ở định dạng khác không? nếu tôi viết "din.read()", tôi có nhận được byte dữ liệu ở định dạng được giải mã lần thứ không? Cảm ơn – dedalo
Có. Đó decodedFormat nói "Tôi muốn bạn giải mã như dữ liệu PCM đã ký". –
Xin chào. Tôi theo lời khuyên của bạn và nó đã hoạt động. Để hiển thị dữ liệu tôi sử dụng: khi ((numBytesRead = din.read (audioBytes))! = -1) {} Điều này đọc các byte trong 'din' và lưu chúng trong mảng audioBytes. Tôi đã cố gắng visualizinf dữ liệu bằng cách sử dụng: while ((numBytesRead = din.read (audioBytes))! = -1) { System.out.println ("Bytes Decoded value" + audioBytes [0]);} Tôi có một câu hỏi về dữ liệu này: Mỗi mẫu sử dụng 16 bit, đó là 2 vị trí trong mảng audioBytes, rigth? Làm thế nào tôi có thể nhận được giá trị của mỗi mẫu? Định dạng được giải mã (wav) có các byte tiêu đề 44 không? Cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn! – dedalo