質問

現在、AndroidでAudioTrackとAudioreCordクラスを使用しています。

私は純粋なPCMデータを使用していますが、他のコーデックのオプションは何だと思っていましたか?

から このページ AMRナローバンドを使用してしかエンコードしてデコードできないようですか?

現在、次のようにオーディオクラスを設定します。

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);

それで、私の質問は、PCMからサポートされているコーデックの1つにエンコードを変更するにはどうすればよいですか?

Audioformatでencoding_pcm_16bitを変更しようとすると、PCMオプションとともにデフォルトまたは無効なエンコードのオプションのみが取得されます。

Androidでのオーディオのエンコードとデコードに関するチュートリアルへのリンクは、ここで何かの助けを知っていれば、素晴らしいことを感謝します。

ありがとう

編集: コードを次のように変更しました。

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);

コードは適切に実行されますが、実際にAMR_NBとしてオーディオをエンコードしているのではないかと思っています。これが適切な方法ではない場合は?

RAW PCMを使用するとバッファオーバーフローを取得していましたが、audioformat.pcmの代わりに使用されている新しいコードを使用して新しいコードを使用して以来、何も表示されませんでした

役に立ちましたか?

解決

ドキュメントが述べているように AudioRecordAudioTrack:

audioFormat     the format in which the audio data is represented. See ENCODING_PCM_16BIT and ENCODING_PCM_8BIT

8ビットと16ビットのPCMでのみ作業できます。他の形式でオーディオが必要な場合は、使用しないでください AudioRecordAudioTrack (試す MediaRecorderMediaPlayer)または、おそらくNDKを活用して、独自のコードを使用してトランスコードする必要があります。

AudioRecordAudioTrack 問題のオーディオが、サポートされているコーデックではないか、サポートされているストリーミングプロトコルではないため、OpenCoreマルチメディアエンジンによってサポートされていない場合に特別に設計されています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top