Tôi hiện đang sử dụng các lớp AudioTrack và AudioRecord trong Android.Tùy chọn codec AudioRecord và AudioTrack Android?
Tôi sử dụng dữ liệu PCM thuần túy nhưng tôi tự hỏi tùy chọn của mình dành cho các codec khác là gì?
Từ this page có vẻ như tôi chỉ có thể mã hóa và giải mã bằng băng hẹp AMR?
Tôi hiện thiết lập các lớp âm thanh như sau:
arec = new AudioRecord(MediaRecorder.AudioSource.MIC,
11025,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
buffersize);
atrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL,
11025,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
buffersize,
AudioTrack.MODE_STREAM);
Vì vậy, câu hỏi của tôi là làm thế nào để tôi thay đổi mã hóa từ PCM để một trong những codec hỗ trợ khác?
Khi tôi cố gắng thay đổi ENCODING_PCM_16BIT trên AudioFormat, tôi chỉ nhận được các tùy chọn mã hóa mặc định hoặc không hợp lệ cùng với các tùy chọn PCM.
Bất kỳ liên kết nào đến hướng dẫn về mã hóa và giải mã âm thanh trên Android sẽ tuyệt vời nếu có ai biết về bất kỳ hoặc trợ giúp nào ở đây được đánh giá cao.
Cảm ơn
EDIT: Tôi đã thay đổi mã của tôi như sau:
arec = new AudioRecord(MediaRecorder.AudioSource.MIC,
11025,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
**MediaRecorder.AudioEncoder.AMR_NB**,
buffersize);
atrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL,
11025,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
**MediaRecorder.AudioEncoder.AMR_NB**,
buffersize,
AudioTrack.MODE_STREAM);
Mã này chạy đúng nhưng tôi đang tự hỏi nó thực sự mã hóa âm thanh như AMR_NB và nếu điều này là không phải là một cách thích hợp để làm điều đó?
Tôi đã nhận được một lỗi tràn bộ đệm khi sử dụng PCM thô nhưng không ai đã xuất hiện kể từ khi sử dụng mã mới với MediaRecorder.AudioEncoder.AMR_NB sử dụng thay cho AudioFormat.PCM
Đó là một thời gian dài kể từ khi bạn đăng câu hỏi của bạn, nhưng có lẽ nó vẫn còn thú vị cho một ai đó ... Bạn không mã hóa để AMR_NB. Flags chỉ là các trường int. MediaRecorder.AudioEncoder.AMR_NB là 0x01 ... giống như AudioFormat.ENCODING_DEFAULT. Vì vậy, bạn chỉ sử dụng mã hóa mặc định. – hacksteak25