オーディオソースを設定MediaRecorderクラスの問題 - setAudioSource() - サポートされていないパラメータ

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

  •  25-09-2019
  •  | 
  •  

質問

私は、Androidの開発に新たなんだと私は次の質問/問題があります。

私は、マイクからちょうどオーディオを録音するためにMediaRecorderクラスで遊んでいます。 ます。http://開発者私は公式サイトで示されている手順に従ってています。 android.com/reference/android/media/MediaRecorder.htmlする

私は初期化とは録画を開始するためにMediaRecorderオブジェクトを設定することを方法を持っているので。ここでは、コードを持っています:


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

私はシミュレータでこのコードを実行すると、logcatのおかげで、私はそれが呼び出されたときにメソッドsetAudioSource(MediaRecorder.AudioSource.MIC)は(タグaudio_ipuntで)次のエラーを与えることが確認できます:


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

そしてメソッドが準備するときは、()が呼び出され、私は再び別のエラーを取得します:


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

私は(メソッドの開始をbycalling記録するために開始した場合)...私は言ったメッセージの多くを得ます


AudioFlinger(34):RecordThread: buffer overflow
その後...停止とリリース後、....私は、ファイルが作成されていることを見ることができますが、それがうまくrecorderdれていることを思えません。 Anway、私は何の問題も記録することができますが、私は私がちょうど記録何を再生することはできません実際のデバイスでこれをしようとした場合。

私は、キーは私が前に言及したことをこれらのエラーであることをgues。どのように私はそれらを修正することができますか?任意の提案やヘルプ??

役に立ちましたか?

解決

シミュレータは、オーディオ録音の問題の多くを持っています。それが動作しないことを言うことができます。あなたの最善の策は、実際のデバイスにあなたのコードを試してみるです!!!

他のヒント

  

注:Androidのエミュレータがオーディオキャプチャする機能を持っていません、   しかし、実際のデバイスは、これらの機能を提供する可能性があります。

参考: http://developer.android.com/guide/トピックス/メディア/オーディオ-capture.htmlする

まあ、私はこのアンドロイドプログラミングではかなり新しいですが、私はそのことについて、これまでに学んだ君たちを与えるでしょう。彼らは銀河Sほとんどが、実際のデバイス上の問題が発生している、とエミュレータ/仮想デバイスはどちらか動作していないことを、ここで状態の答えの数。まあ、私は、仮想デバイスは、今のオーディオ録音をサポートしていないことをグーグルから読み取ります。それはあるいはまだ正確であってもなくてもよいです。しかし、はるかに多くの経験を積んアンドロイドプログラマは、ハードウェアがあるため、行くアンドロイド、最近非常に多くのデバイスで利用可能である限り、デバイス間の類似点があることを信じる理由はないと言ってくれました。また、各アンドロイドOSは、ドロイドとドロイドXが両方ともAndroidのフローズンヨーグルトを実行することができるようにもかかわらず、具体的には各デバイスに対応するために非常にわずかに変更され、フローズンヨーグルトのバージョンは、わずかに異なっています。すべてが言われていることを、多分ギャラクシーSは、マイクや何かのためにわずかに異なる呼び出し方法があります。私の試験装置はMotoDroidであることを起こるので、私は申し訳ありませんが、そのことについて確認することはできません。しかし、私は、これは少しのに役立ちます願っています!

編集: 私の悪いが、エミュレータがオーディオの録音をサポートしています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top