2011-07-29 23 views
2

私のアプリケーションには十分な録音が必要なため、ホームスクリーンから録音できるウィジェットを作ったのです。 私はすべてのMediaRecorder呼び出しを扱うRecorder.javaクラスを持っています。 アクティビティから録音すると、すべて正常に動作します。ウィジェットから録音するときは録音しますが、録音を停止することはありません。ここでサウンドレコーダーウィジェットは録音を停止しません

は、私が活動から停止するために使用するコードです:ウィジェット内の録画ボタンを押すと

//r is an instance of Recorder.java 
if (r.getState() == Recorder.RECORDING) { 
       r.stopRecording(); 

      } 

、それはレコーダーの状態をチェックするサービスを、開始します。 rが録音中の場合は停止し、録音を開始しない場合は停止します。このチェックは、録音したときに押して、の後にと表示されるトーストを取得したが、録音を停止しないため動作します。 サービスでも私は使用しますr.stopRecording();

私のコードで何が間違っているのでしょうか?

+0

)と呼ばれ、(最後のrelaseでStop()prepare()を使用するすべての運を試してみてください?私は同じ状況があります。 –

+0

私が正しくリコールすれば、私はそれを動作させることができませんでした。そのため、私の実装はかなり汚く、サービスを殺し、OSが正しく処理することを期待しています。 – leonsas

+0

私は答えが悪いのですぐにそれを投稿してもらえればokm、落ち着いてください:) –

答えて

0

記録を停止してMediaRecorderオブジェクト

+0

stopRecording()メソッドは基本的にrecorder.stop()とrecorder.release()とrecorder = nullを持っています。奇妙なことは、ウィジェット/サービスからではなく、アクティビティから呼び出すときに機能するということです。 – leonsas

+0

私は物事を理解することができる完全なコードを投稿してください。ありがとう –

関連する問題