Casa > Q > Qual Será O Algoritmo Para Um Simples Gravador De Som No Android?

Qual será o algoritmo para um simples gravador de som no Android?

Se você quiser desenvolver uma aplicação que possa gravar som então há duas maneiras de conseguir isso em android:

  1. MediaRecorder Class
p>p>p>public class MediaRecorder
extends Object

Esta classe é usada para gravar áudio e vídeo. 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 lhe dá a amplitude máxima da última chamada do método getMaxAmplitude() para que você possa implementar um visualizador de som, por exemplo.

Um exemplo muito simples da classe MediaRecorder:

Android MediaRecorder exemplo - javatpoint

Você também pode referir este código se você quiser gravar vídeo e áudio :

googlesamples/android-MediaRecorder

2. A classe AudioRecord

classe pública AudioRecord
extends Object implementa AudioRouting

A classe AudioRecord gerencia os recursos de áudio para aplicações Java para gravar áudio a partir do hardware de entrada de áudio da plataforma. Isto é conseguido "puxando" (lendo) os dados do objeto AudioRecord.

Se você quer fazer sua análise enquanto a gravação ainda está em andamento, você precisa usar o AudioRecord, pois o MediaRecorder grava automaticamente em um arquivo e o AudioRecorder lhe dá apenas um fluxo de som bruto e você tem que comprimi-lo sozinho.

AudioRecord tem a desvantagem, que depois de chamar startRecording() você precisa pesquisar os dados da instância do AudioRecord. Além disso, você precisa ler e processar os dados suficientemente rápido para que o buffer interno não seja sobrecarregado (olhe na saída do Logcat, AudioRecord lhe dirá quando isso acontecer).

Código da classe audiorecord normalmente vai até 3000 linhas no mínimo :D

olhe nesta classe em "telegrama" para a fonte andróide da classe AudioRecord:

DrKLO/Telegram

De Rasla

Consegues piratear alguma coisa? :: O que devo fazer depois de instalar acidentalmente AnyDesk app (utilizado por hackers) no meu telemóvel?