Ich verwende derzeit die AudioTrack und AudioRecord Klassen in Android.Android AudioRecord und AudioTrack Codec-Optionen?
Ich verwende die reinen PCM-Daten, aber ich fragte mich, was meine Optionen für andere Codecs sind?
Von this page scheint es, dass ich nur mit AMR Schmalband codieren und decodieren kann?
ich derzeit die Audio-Klassen setzen sich wie folgt zusammen:
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);
Also meine Frage ist, wie kann ich die Codierung von PCM zu einem der anderen unterstützten Codecs ändern?
Wenn ich versuche, ENCODING_PCM_16BIT auf AudioFormat zu ändern, bekomme ich nur die Optionen von Standard oder ungültiger Kodierung zusammen mit den PCM-Optionen.
Alle Links zu Tutorials zum Encodieren und Decodieren von Audio auf Android wäre großartig, wenn jemand von irgendeiner oder jeder Hilfe weiß hier sehr geschätzt.
Dank
EDIT:
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);
Der Code läuft richtig, aber ich frage mich, das Audio als AMR_NB ist es zu kodieren tatsächlich und wenn dies: Ich habe meinen Code wie folgt geändert nicht ein richtiger Weg, es zu tun?
Ich war immer einen Pufferüberlauf beim rohen PCM aber keine Verwendung erscheint seit dem neuen Code mit mit dem MediaRecorder.AudioEncoder.AMR_NB anstelle dem AudioFormat.PCM verwendet
Es ist lange her, seit Sie Ihre Frage gepostet haben, aber vielleicht ist es immer noch interessant für jemanden ... Sie kodieren nicht zu AMR_NB. Die Flags sind nur int-Felder. MediaRecorder.AudioEncoder.AMR_NB ist 0x01 ... wie AudioFormat.ENCODING_DEFAULT. Sie verwenden also nur die Standardcodierung. – hacksteak25