Pergunta

Existe alguma maneira de gravar áudio em alta qualidade?

E como posso ler informações que o usuário está dizendo algo? No aplicativo de gravação de áudio você pode ver como indicador (não sei o nome certo para ele).

Foi útil?

Solução

Para gravação e monitoramento: Você pode utilizar a atividade gravador de som. Aqui está um trecho de código:

Intent recordIntent = new Intent(
                MediaStore.Audio.Media.RECORD_SOUND_ACTION);
            startActivityForResult(recordIntent, REQUEST_CODE_RECORD);

Para um exemplo perfeito funcionamento do procedimento para gravar áudio que inclui um monitor de entrada, baixar o projeto Ringdroid open source: https://github.com/google/ringdroid

Veja as imagens e você verá o monitor.

Para fazer a maior qualidade de áudio, você precisa de uma melhor microfone. O construído em lata mic única capturar tanto (o que não é bom). Mais uma vez, olhar para o projeto Ringdroid, recolher algumas informações de lá. Nesse ponto, você poderia implementar algumas rotinas de normalização e de amplificação para melhorar o som.

Outras dicas

No momento, um grande motivo para a má qualidade de gravação de áudio no Android é o codec utilizado pela classe MediaRecorder (o codec AMR-NB). No entanto, você pode ter acesso a áudio sem compressão através da classe AudioRecord, e gravar isso em um arquivo diretamente.

O Assistant Ensaio aplicativo faz isso para salvar áudio sem compressão em um arquivo WAV - dê uma olhada no RehearsalAudioRecord código-fonte da classe.

A classe RehearsalAudioRecord também fornece um método getMaxAmplitude, que você pode usar para detectar o nível de áudio máxima desde a última vez que você ligou o método (MediaRecorder também fornece este método).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top