I problemi con l'impostazione classe MediaRecorder sorgente audio - setAudioSource () - parametro non supportato

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

  •  25-09-2019
  •  | 
  •  

Domanda

Sono nuovo in fase di sviluppo Android e ho la prossima domanda / problema.

Sto giocando intorno con la classe MediaRecorder di registrare solo l'audio dal microfono. Sto seguendo la procedura indicata nel sito ufficiale: http: // sviluppatore. android.com/reference/android/media/MediaRecorder.html

Ho un metodo che inizializza e configurare l'oggetto MediaRecorder al fine di avviare la registrazione. Qui si ha il codice:


        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 eseguo questo codice nel simulatore, grazie a logcat, posso vedere che il metodo setAudioSource (MediaRecorder.AudioSource.MIC) dà l'errore successivo (con il tag audio_ipunt) quando viene chiamato:


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 poi, quando il metodo di preparazione () viene chiamata, ottengo l'altro errore ancora:


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

Se inizio a registrare bycalling il metodo start () ... Ho un sacco di messaggi che dicono:


AudioFlinger(34):RecordThread: buffer overflow

Quindi ... dopo l'arresto e il rilascio, .... vedo che un file è stato creato, ma non sembra che sia stato ben recorderd. Anway, se provo questo in un dispositivo reale posso registrare senza problemi, ma non posso giocare quello che ho appena registrato.

I gues che la chiave è in questi errori che ho citato prima. Come posso risolvere il problema? Qualsiasi suggerimento o aiuto ??

È stato utile?

Soluzione

Il simulatore ha un sacco di problemi con la registrazione audio. Diciamo che non funziona. La cosa migliore è provare il codice in un dispositivo reale !!!

Altri suggerimenti

  

Nota: L'Android Emulator non ha la capacità di audio cattura,   ma i dispositivi reali sono suscettibili di fornire queste funzionalità.

Rif: http://developer.android.com/guide/ argomenti / media / audio-capture.html

Beh, sono abbastanza nuovo a questa programmazione Android, ma ti darò ragazzi quello che ho imparato finora su questo. Alcune delle risposte qui stato che stanno avendo problemi su dispositivi reali, per lo più il Galaxy S, e il dispositivo di emulatore / virtuale non funziona neanche. Beh, ho letto da Google che il dispositivo virtuale non supporta la registrazione audio al momento. Questo può o non può essere ancora accurate. Tuttavia, un programmatore Android significativamente più esperto mi ha detto che non v'è alcuna ragione di credere che ci sono somiglianze tra i dispositivi per quanto riguarda l'hardware va, dal momento che Android è disponibile su molti dispositivi al giorno d'oggi. Inoltre, ogni sistema operativo Android viene modificata leggermente per accogliere in modo specifico per ciascun dispositivo, quindi, anche se il Droid e Droid X possono entrambi essere in esecuzione Android Froyo, le versioni di Froyo sono leggermente diverse. Tutto ciò detto, forse il Galaxy S ha una chiamata di metodo leggermente diverso per il microfono o qualcosa del genere. Il mio dispositivo di test sembra essere un MotoDroid, quindi non posso essere sicuro di questo, mi dispiace. Ma spero che questo aiuta un po '!

EDIT: il mio male, l'emulatore supporta la registrazione audio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top