Il primo parametro è audiosource: cosa è?
Era come quella che avevo visto per MediaRecorder: la sorgente audio.
Potrei scegliere "Microfono"...
AudioRecord audioRecord=new AudioRecord(MediaRecorder.AudioSource.MIC,)
Il secondo parametro è sampleRateInHz: il nome spiega che sarebbe la frequenza di campionamento.
Il valore più usato sarebbe 44100.
Il terzo è channelConfig che sarebbe la differenza fra MONO, STEREO.
Il quarto è audioFormat che può essere 8 bit, 16 bit o float (quest'ultimo non l'ho mai sentito)
Il quinto e ultimo parametro è bufferSizeInBytes, che a quanto ho capito può essere determinato nel suo valore ottimale mediante un'altra funzione, che sarebbe getMinBufferSize la quale troverebbe il valore minimo del buffer necessario per lavorare con certi parametri.
E non vogliamo andare a vedercela subito, questa funzione getMinBufferSize?
Ecco qui un pezzo di codice preso da StackOverflow dove viene definita la lunghezza del buffer per mezzo di questa funzione:
int audioSource = AudioSource.MIC; int sampleRateInHz = 8000; int channelConfig = AudioFormat.CHANNEL_IN_MONO; int audioFormat = AudioFormat.ENCODING_PCM_16BIT; int bufferSizeInBytes = AudioRecord.getMinBufferSize(sampleRateInHz, channelConfig, audioFormat);Questa funzione usa Sample Rate, Channel Config e Audio Format per derivare la minima dimensione necessaria per il buffer.
Cioè, per intendermi, usa cose piuttosto semplici da capire:
- La frequenza di campionamento
- il fatto che si voglia registrare un suono STEREO o MONO
- il formato a 8 o 16 bit
E ora mi sento un po' più tranquillo sulla cosa...
Nessun commento:
Posta un commento