QNA > Q > Quale Sarà L'algoritmo Per Un Semplice Registratore Di Suoni In Android?

Quale sarà l'algoritmo per un semplice registratore di suoni in Android?

Se volete sviluppare un'applicazione che possa registrare il suono, ci sono due modi per farlo in Android:

  1. Classe MediaRecorder

public class MediaRecorder
extends Object

Questa classe è usata per registrare audio e video. The recording control is based on a simple state machine (see below).

main-qimg-63fdc1348c4b8c2bf17b5cf0d6597ddf
  1. MediaRecorder recorder = new MediaRecorder();  
  2. recorder.setAudioSource(MediaRecorder.AudioSource.MIC);  
  3. recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
  4. recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);  
  5. recorder.setOutputFile(PATH_NAME);  
  6. recorder.prepare();  
  7. recorder.start(); // Recording is now started ...  
  8. recorder.stop();  
  9. recorder.reset(); // You can reuse the object by going back to setAudioSource() step  
  10. recorder.release(); // Now the object cannot be reused  

Most of the application uses this class if those application are not doing any special analysis on the audio.

MediaRecorder fornisce l'ampiezza massima dall'ultima chiamata del metodo getMaxAmplitude() in modo da poter implementare un visualizzatore di suoni per esempio.

Un esempio molto semplice della classe MediaRecorder:

EsempioAndroid MediaRecorder - javatpoint

Puoi anche fare riferimento a questo codice se vuoi registrare sia video che audio :

googlesamples/android-MediaRecorder

2. Classe AudioRecord

public class AudioRecord
extends Object implements AudioRouting

La classe AudioRecord gestisce le risorse audio per le applicazioni Java per registrare audio dall'hardware di ingresso audio della piattaforma. Questo si ottiene "tirando" (leggendo) i dati dall'oggetto AudioRecord.

Se vuoi fare la tua analisi mentre la registrazione è ancora in corso, devi usare AudioRecord, perché MediaRecorder registra automaticamente in un file e AudioRecorder ti dà solo il flusso audio grezzo e tu devi comprimerlo da solo.

AudioRecord ha lo svantaggio che dopo aver chiamato startRecording() devi prelevare i dati dall'istanza AudioRecord. Inoltre, devi leggere e processare i dati abbastanza velocemente in modo che il buffer interno non venga superato (guarda l'output di Logcat, AudioRecord ti dirà quando ciò accade).

Il codice della classe audiorecord di solito arriva a 3000 linee minimo :D

Cerca in questa classe in "telegram" per il sorgente android della classe AudioRecord:

DrKLO/Telegram

Di Rhonda

Quali sono alcuni buoni film romantici/drammatici su un ragazzo che protegge/salva una ragazza? :: Cosa devo fare dopo aver installato accidentalmente l'applicazione AnyDesk (usata dagli hacker) sul mio cellulare?
Link utili