6

Tôi đang phát triển một ứng dụng xử lý âm thanh nơi tôi cần ghi lại âm thanh và sau đó xử lý nó để có được các tính năng của bản ghi đó. Tuy nhiên, tôi muốn âm thanh ở định dạng có thể phát để phát sau khi có MediaPlayer.Android AudioRecord và MediaRecorder

Tôi đã thấy rằng để ghi lại âm thanh để xử lý tốt hơn nên sử dụng AudioRecord, vì tôi có thể lấy âm thanh thô từ đó. Nhưng sau đó tôi không thể ghi dữ liệu vào một tập tin trong một định dạng có thể chơi được (là có bất kỳ thư viện để làm điều này trong android?).

Tôi đã sử dụng phương pháp này để ghi dữ liệu thô và sau đó ghi vào một tệp: http://andrewbrobinson.com/2011/11/27/capturing-raw-audio-data-in-android/ Nhưng khi tôi cố gắng phát tệp này trên thiết bị, nó không thể phát được.

Sau đó, nếu tôi sử dụng MediaRecorder, tôi không biết cách giải mã dữ liệu để trích xuất các tính năng. Tôi đã nhìn vào MediaExtractor, nhưng nó seams rằng MediaExtractor không giải mã các khung hình.

Vì vậy, cách tốt nhất để làm điều này là gì? Tôi tưởng tượng đó là phổ biến trong bất kỳ ứng dụng xử lý âm thanh, nhưng tôi đã không thể tìm thấy cách để quản lý này.

Nhờ câu trả lời của bạn.

Trả lời

16

Sử dụng AudioRecord là đúng cách để đi nếu bạn cần phải làm bất kỳ loại chế biến. Để phát lại, bạn có một vài tùy chọn. Nếu bạn chỉ định phát lại video đó trong ứng dụng của mình, bạn có thể sử dụng AudioTrack thay vì MediaPlayer để phát luồng PCM thô.

Nếu bạn muốn nó có thể phát được với các ứng dụng khác, trước tiên bạn sẽ cần phải chuyển đổi nó thành một thứ khác. WAV thường đơn giản nhất vì bạn chỉ cần thêm header. Bạn cũng có thể tìm thư viện để chuyển đổi sang các định dạng khác, như JOrbis cho OGG hoặc JLayer cho MP3, v.v.

+0

Cảm ơn, điều này đã hiệu quả đối với tôi. Cuối cùng tôi đã ghi lại âm thanh trong các tệp pcm thô và tôi có thể phát chúng bằng cách sử dụng AudioTrack. – Miquel

2

Nếu bạn sử dụng đối tượng AudioRecord để nhận tín hiệu âm thanh thô, bước tiếp theo để lưu nó thành tệp có thể phát không phải là quá khó khăn, bạn chỉ cần thêm một đầu WAV trước khi dữ liệu âm thanh bạn chụp, sau đó bạn nhận được một tập tin .WAV mà bạn có thể chơi nó trên hầu hết các điện thoại di động.

Tệp .WAV là tệp dưới định dạng RIFF. tiêu đề RIFF cho tệp WAV dài 44 byte và chứa tỷ lệ mẫu, chiều rộng mẫu và thông tin về số lượng kênh. bạn có thể lấy thông tin chi tiết từ here

Tôi đã thực hiện chức năng mẫu trên điện thoại Android và nó hoạt động.

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