Sto provando a registrare il suono dal MIC e a disegnare un grafico dal vivo. Sono in grado di registrare e disegnare il grafico. Il problema è che i valori che vengono registrati usando il codice sottostante non sono accurati per esempio ... l'immagine qui sotto è ciò che ottengo quando non c'è alcun suono presente. Ho visto esempi usando il fft, ma non sono sicuro se ciò sarà di aiuto nel mio caso mentre sto cercando di disegnare un grafico nel dominio del tempo e non vedo alcuno scopo per convertirlo in dominio di frequenza (per ora). Altri stanno usando il potere medio, questo potrebbe essere utile ma non ne sono sicuro.lettura dell'ampiezza di Android AudioRecord da MIC
Grazie per qualsiasi aiuto.
bufferSize = AudioRecord.getMinBufferSize(RECORDER_SAMPLERATE,RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING);
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
RECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);
short data [] = new short[bufferSize];
while (!Thread.interrupted()) {
recorder.startRecording();
recorder.read(data, 0, bufferSize);
recorder.stop();
for (short s : data)
{
try {
Thread.sleep((long) 300.00);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
postUI (Math.abs(s));
}
}
recorder.release();
ciao come hai preso l'ampiezza del suono in Audiorecorder favore aiuto –
registratore = new AudioRecord (MediaRecorder.AudioSource.MIC, RECORDER_SAMPLERATE, RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING, bufferSize); recorder.startRecording(); \t \t \t recorder.read (dati, 0, bufferSize); \t \t \t recorder.stop(); per (numeri brevi: dati) { media + = Math.abs (s); } – user591124