Gravação de áudio no aplicativo Android – um guia completo para desenvolvedores

Se você deseja adicionar a funcionalidade de gravação de áudio ao seu aplicativo Android, está no lugar certo! A gravação de áudio pode ser um recurso poderoso que permite aos usuários capturar anotações de voz, gravar entrevistas, criar podcasts e muito mais. Neste artigo, vamos orientá-lo no processo de gravação de áudio no Android, fornecendo um guia passo a passo e práticas recomendadas para ajudá-lo a implementar esse recurso com eficiência.

Muitos recursos estão disponíveis na plataforma Android que facilitam nosso dia a dia. Um dos recursos essenciais do Android é a gravação de áudio/voz – gravadores de voz, aplicativos de música e aplicativos de efeitos sonoros geralmente usam essa funcionalidade.

A classe MediaRecorder é usada para gravar áudio em aplicativos Android . Esta classe Android nos permite gravar áudio e vídeo.



Por que gravar áudio?

A gravação de áudio pode adicionar uma nova dimensão de interatividade e envolvimento do usuário ao seu aplicativo.

Aqui estão algumas razões pelas quais você pode querer incluir a gravação de áudio em seu aplicativo:

  • Os usuários podem capturar notas de voz ou lembretes de forma rápida e fácil, tornando conveniente para eles registrarem seus pensamentos ou ideias em trânsito.
  • Gravar entrevistas em áudio ou criar podcasts pode ser um recurso valioso para aplicativos relacionados a jornalismo, notícias ou criação de conteúdo.
  • A gravação de áudio pode ser usada em aplicativos de aprendizado de idiomas para ajudar os usuários a praticar a pronúncia ou gravar sua própria voz para comparação.
  • A gravação de áudio pode ser usada em aplicativos relacionados a música, efeitos sonoros ou produção de áudio para permitir que os usuários gravem seus próprios clipes ou amostras de áudio.

Agora que você entende os benefícios de incorporar a gravação de áudio em seu aplicativo, vamos nos aprofundar nas etapas para implementar esse recurso.


Solicitando permissão

Antes de iniciarmos a gravação do áudio, precisamos solicitar as permissões necessárias ao usuário.

Para gravar áudio em nosso aplicativo Android, precisamos adicionar a permissão RECORD_AUDIO ao arquivo de manifesto do aplicativo.

Além disso, se nossa API de destino for 23 ou superior, também precisaremos solicitar essa permissão em tempo de execução.

Veja como você pode solicitar a permissão em seu aplicativo:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, RECORD_AUDIO_REQUEST_CODE);
}

Adicione a seguinte permissão no arquivo AndroidManifest.xml do seu aplicativo:

<uses-permission android:name="android.permission.RECORD_AUDIO" />

Solicite a permissão em tempo de execução usando o seguinte trecho de código em sua atividade ou fragmento:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, REQUEST_AUDIO_PERMISSION);
}

Trate o resultado da permissão no callback onRequestPermissionsResult() e verifique se a permissão foi concedida ou negada pelo usuário:

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == REQUEST_AUDIO_PERMISSION) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission granted, start recording audio
startRecording();
} else {
// Permission denied, show a message or take appropriate action
Toast.makeText(this, "Audio recording permission denied", Toast.LENGTH_SHORT).show();
}
}
}

Gravando áudio

Depois de obter a permissão necessária, você pode começar a gravar o áudio em seu aplicativo.

Aqui está uma visão geral das etapas envolvidas na gravação de áudio:

  • A classe MediaRecorder no Android fornece métodos para gravar áudio.
  • Crie uma instância de MediaRecorder e defina suas configurações, como fonte de áudio, formato de saída e arquivo de saída.
  • Chame o método prepare() no objeto MediaRecorder para prepará-lo para gravação.
  • Chame o método start() no objeto MediaRecorder para iniciar a gravação do áudio.
  • Chame o método stop() no objeto MediaRecorder para interromper a gravação do áudio.
  • Chame o método release() no objeto MediaRecorder para liberar os recursos associados a ele.

Aqui está um exemplo de como:

// Step 1: Create a MediaRecorder object
MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); // Set audio source as microphone
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); // Set output format
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); // Set audio encoder
mediaRecorder.setOutputFile(outputFilePath); // Set output file path

// Step 2: Prepare the MediaRecorder
try {
mediaRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}

// Step 3: Start recording
mediaRecorder.start();

// Step 4: Stop recording
mediaRecorder.stop();

// Step 5: Release resources
mediaRecorder.release();
mediaRecorder = null;

Você pode personalizar as configurações do objeto MediaRecorder com base nos requisitos do seu aplicativo.

Por exemplo, você pode definir uma fonte de áudio diferente, formato de saída, codificador de áudio e caminho de arquivo de saída de acordo com as necessidades do seu aplicativo.


Lidando com retornos de chamada de gravação de áudio

A gravação de áudio no Android envolve operações assíncronas, como iniciar e parar a gravação.

Para iniciar a gravação de áudio, primeiro chamaremos o método prepare() da classe MediaRecorder e depois o método start() para iniciar o processo de gravação propriamente dito.

Quando a gravação de áudio estiver concluída, podemos interromper a gravação chamando o método stop() . Aqui está um exemplo de como iniciar e parar a captura de áudio:

recorder.prepare();
recorder.start();
// Recording is now in progress...
recorder.stop();
recorder.reset();
recorder.release();

Manipulando dados de áudio

Depois de pararmos a gravação, podemos processar os dados de áudio gravados de várias maneiras, incluindo salvá-los em um arquivo, carregá-los em um servidor ou reproduzi-los para o usuário.

Podemos usar a classe MediaPlayer para reproduzir os dados de áudio gravados ou usar bibliotecas de terceiros para processar os dados de áudio ainda mais.

Vejamos um exemplo de como reproduzir os dados de áudio gravados:

MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(outputFile.getAbsolutePath());
mediaPlayer.prepare();
mediaPlayer.start();

Métodos da Classe MediaRecorder

A classe MediaRecorder no Android fornece um conjunto de métodos para controlar o processo de gravação de áudio. Aqui estão alguns dos métodos importantes da classe MediaRecorder:

Métodos Visão geral
setAudioSource(int) Este método define a fonte de áudio para a gravação. O argumento é um número inteiro que especifica a fonte de áudio, como MIC, VOICE_CALL ou CAMCORDER.
setOutputFormat(int) Este método define o formato do arquivo de saída para a gravação. O argumento é um número inteiro que especifica o formato de saída, como MPEG-4, 3GPP ou AMR-NB.
setAudioEncoder(int) Este método define o codificador de áudio para a gravação. O argumento é um número inteiro que especifica o codificador de áudio, como AAC, AMR-NB ou Vorbis.
setOutputFile(FileDescriptor) Este método define o arquivo de saída para a gravação. O argumento é um FileDescriptor que especifica o arquivo de saída.
preparar() Este método prepara a instância MediaRecorder para gravação.
começar() Este método inicia o processo de gravação real.
parar() Este método interrompe o processo de gravação.
reiniciar() Este método redefine a instância MediaRecorder para seu estado inicial.
liberar() Este método libera os recursos usados ​​pela instância MediaRecorder.
getMaxAmplitude() Este método retorna a amplitude máxima do áudio gravado. Ele pode ser usado para implementar um medidor de nível de som simples no aplicativo.

Concluindo , a gravação de áudio no Android é um recurso poderoso que pode ser utilizado em vários aplicativos, como gravadores de voz, gravadores de chamadas e aplicativos multimídia . Com a classe MediaRecorder e seus retornos de chamada associados, você pode implementar facilmente a funcionalidade de gravação de áudio em seu aplicativo.

Seguindo as etapas descritas neste artigo, você pode criar um recurso de gravação de áudio eficiente e confiável em seu aplicativo Android. Lembre-se de manipular as permissões corretamente, configurar o objeto MediaRecorder com as configurações apropriadas, implementar os retornos de chamada necessários para gravar eventos e erros e usar a classe MediaPlayer para reproduzir o áudio gravado.

Esteja você criando um aplicativo simples de gravação de voz ou um aplicativo multimídia complexo , entender como gravar áudio no Android é uma habilidade essencial para qualquer desenvolvedor Android. Então vá em frente e comece a implementar a gravação de áudio em seu aplicativo e deixe seus usuários capturarem e desfrutarem de conteúdo de áudio de alta qualidade! Codificação feliz!

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone