Problemas com a classe Mediarecorder Configuração de áudio Fonte - SetAudiosource () - Parâmetro não suportado

StackOverflow https://stackoverflow.com/questions/3002537

  •  25-09-2019
  •  | 
  •  

Pergunta

Sou novo no desenvolvimento do Android e tenho a próxima pergunta/problema.

Estou brincando com a classe Mediarecorder para gravar apenas áudio do microfone. Estou seguindo as etapas indicadas no site oficial: http://developer.android.com/reference/android/media/mediarecorder.html

Portanto, tenho um método que inicializa e configura o objeto Mediarecorder para começar a gravar. Aqui você tem o código:


        this.mr = new MediaRecorder();
        this.mr.setAudioSource(MediaRecorder.AudioSource.MIC);
        this.mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        this.mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        this.mr.setOutputFile(this.path + this.fileName);
        try {
            this.mr.prepare();
        } catch (IllegalStateException e) {
            Log.d("Syso", e.toString());
            e.printStackTrace();
        } catch (IOException e) {
            Log.d("Syso", e.toString());
            e.printStackTrace();
        }

Quando executo esse código no simulador, graças ao Logcat, posso ver que o método setaudiosource (mediarecorder.audiosource.mic) dá o próximo erro (com o tag audio_ipunt) quando é chamado:


ERROR/audio_input(34): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
ERROR/audio_input(34): VerifyAndSetParameter failed

E então, quando o método preparar () é chamado, recebo o outro erro novamente:


ERROR/PVOMXEncNode(34): PVMFOMXEncNode-Audio_AMRNB::DoPrepare(): Got Component OMX.PV.amrencnb handle 

Se eu começar a registrar o método start () ... recebo muitas mensagens dizendo:


AudioFlinger(34):RecordThread: buffer overflow

Então ... depois da parada e da liberação, ... eu posso ver que um arquivo foi criado, mas não parece que tenha sido bem gravado. Segundo, se eu tentar isso em um dispositivo real, posso gravar sem problemas, mas não posso tocar o que acabei de gravar.

Eu provo que a chave está nesses erros que mencionei antes. Como posso consertá -los? Alguma sugestão ou ajuda ??

Foi útil?

Solução

O simulador tem muitos problemas com a gravação de áudio. Digamos que isso não funciona. Sua melhor aposta é tentar seu código em um dispositivo real !!!

Outras dicas

Nota: O emulador Android não tem a capacidade de capturar áudio, mas é provável que os dispositivos reais forneçam esses recursos.

Ref: http://developer.android.com/guide/topics/media/audio-capture.html

Bem, sou bastante novo nesta programação do Android, mas vou dar a vocês o que aprendi até agora. Algumas das respostas aqui afirmam que estão tendo problemas em dispositivos reais, principalmente na galáxia, e o emulador/dispositivo virtual também não está funcionando. Bem, eu li no Google que o dispositivo virtual não suporta gravação de áudio no momento. Isso pode ou não ser ainda preciso. No entanto, um programador Android significativamente mais experiente me disse que não há razão para acreditar que existem semelhanças entre os dispositivos no que diz respeito ao hardware, já que o Android está disponível em tantos dispositivos hoje em dia. Além disso, cada sistema operacional Android é modificado muito ligeiramente para atender especificamente a cada dispositivo; portanto, mesmo que o dróide e o dróide X possam estar executando o Android Froyo, as versões do Froyo são um pouco diferentes. Tudo isso dito, talvez a galáxia s tenha um método de chamada ligeiramente diferente para o microfone ou algo assim. Meu dispositivo de teste é um motodroid, então não tenho certeza disso, desculpe. Mas espero que isso ajude um pouco!

EDIT: Meu mau, o emulador suporta gravação de áudio.

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