Problèmes de configuration classe MediaRecorder source audio - setAudioSource () - paramètre non pris en charge

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

  •  25-09-2019
  •  | 
  •  

Question

Je suis nouveau dans le développement Android et j'ai la question suivante / problème.

Je suis jouer avec la classe MediaRecorder pour enregistrer tout audio du microphone. Je suis en suivant les étapes indiquées dans le site officiel: http: // développeur. android.com/reference/android/media/MediaRecorder.html

J'ai donc une méthode qui initialise et configurer l'objet MediaRecorder afin de commencer l'enregistrement. Ici vous avez le code:


        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();
        }

Quand j'exécute ce code dans le simulateur, grâce à logcat, je peux voir que la méthode setAudioSource (MediaRecorder.AudioSource.MIC) donne l'erreur suivante (avec la balise audio_ipunt) lorsqu'elle est appelée:


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

Et puis, quand la méthode prepare () est appelée, je reçois à nouveau l'autre erreur:


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

Si je commence à enregistrer bycalling le début de la méthode () ... Je reçois beaucoup de messages disant:


AudioFlinger(34):RecordThread: buffer overflow

Alors ... après l'arrêt et relâchez, .... Je peux voir qu'un fichier a été créé, mais il ne semble pas que cela été bien recorderd. Anway, si je tente cela dans un vrai appareil que je peux enregistrer sans problème, mais je ne peux pas jouer ce que je viens d'enregistrer.

Je gues que la clé est dans ces erreurs que je l'ai mentionné auparavant. Comment puis-je les corriger? Toute suggestion ou aide ??

Était-ce utile?

La solution

Le simulateur a beaucoup de problèmes avec l'enregistrement audio. Disons que cela ne fonctionne pas. Votre meilleur pari est d'essayer votre code dans un véritable appareil !!!

Autres conseils

  

Note: L'émulateur Android n'a pas la capacité de capturer l'audio,   mais les dispositifs réels sont susceptibles de fournir ces capacités.

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

Eh bien, je suis assez nouveau dans cette programmation Android, mais je vais vous donner les gars ce que je l'ai appris jusqu'à présent à ce sujet. Quelques-unes des réponses ici état qu'ils ont des problèmes sur des appareils réels, la plupart du temps la galaxie S, et le dispositif d'émulateur / virtuel ne fonctionne pas non plus. Eh bien, je lis de Google que le périphérique virtuel ne prend pas en charge l'enregistrement audio en ce moment. Cela peut ou peut ne pas être toujours précis. Cependant, un programmeur androïde beaucoup plus expérimenté m'a dit qu'il n'y a aucune raison de croire qu'il existe des similitudes entre les appareils dans la mesure où le matériel va, puisque Android est disponible sur tant de dispositifs de nos jours. En outre, chaque système d'exploitation Android est modifié très légèrement pour répondre spécifiquement à chaque appareil, de sorte que même si le Droid et le Droid X peut être à la fois sous Android Froyo, les versions de Froyo sont légèrement différentes. Tout cela étant dit, peut-être le Galaxy S a une méthode d'appel légèrement différent pour le microphone ou quelque chose. Mon appareil de test se trouve être un MotoDroid, donc je ne peux pas être sûr à ce sujet, désolé. Mais j'espère que cela aide un peu!

EDIT: mon mauvais, l'émulateur prend en charge l'enregistrement audio.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top