JavascriptProva

domenica 13 marzo 2016

Ripasso di elementi di audio digitale

Quanti parametri ha AudioRecord?
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