Attualmente utilizzo le classi AudioTrack e AudioRecord in Android.Opzioni di codec audio AudioRecord e AudioTrack Android?
ho utilizzare i dati PCM puri ma mi chiedevo quali sono le mie opzioni sono per altri codec?
Da this page sembra posso solo codificare e decodificare utilizzando AMR banda stretta?
Io attualmente istituito le classi audio come segue:
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);
Quindi la mia domanda è: come faccio a cambiare la codifica da PCM a uno degli altri codec supportati?
Quando provo a modificare ENCODING_PCM_16BIT in AudioFormat, ottengo solo le opzioni di codifica predefinita o non valida insieme alle opzioni PCM.
Eventuali collegamenti a tutorial su codifica e decodifica audio su Android sarebbe bello se qualcuno sa di qualsiasi o di qualsiasi aiuto qui molto apprezzato.
Grazie
EDIT: ho cambiato il mio codice al seguente:
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);
Il codice viene eseguito correttamente, ma mi chiedo cosa realmente codificare l'audio come AMR_NB e se questo è non è un modo corretto per farlo?
mi è stato sempre un overflow del buffer quando si utilizza PCM grezzo ma nessuno sono apparsi in quanto utilizzando il nuovo codice con il MediaRecorder.AudioEncoder.AMR_NB utilizzato al posto del AudioFormat.PCM
E 'da molto tempo che avete inviato la tua domanda, ma forse è ancora interessante per qualcuno ... Lei non è la codifica a AMR_NB. Le bandiere sono solo campi int. MediaRecorder.AudioEncoder.AMR_NB è 0x01 ... uguale a AudioFormat.ENCODING_DEFAULT. Quindi stai solo usando la codifica predefinita. – hacksteak25