2012-02-11 8 views
0

私はちょうど簡単なAndroidアプリの開発の終わりです。Android SDKメディアレコーダー。状態4

マイナーな問題。状態4とは何ですか?

私はMediaPlayerのを使用していると私は、アプリケーションを実行するたびに、私はメディアプレイヤーはその後、状態4

誰がどのような状態4を知っています、最初の状態0で呼ばれて「)(開始」というエラーを取得しますありますか?

私はこのような状態1や2などの状態を知っていれば、私は問題を把握することができます...

おかげで、

+0

あなたの質問は "状態4とは何ですか"で、あなたは非常に良い答えを与えられました。あなたはその答えを受け入れるべきです。あなたのコードがまだ動作していない場合は、別の質問をしてください。 –

答えて

7

これはAndroidのソースにMediaPlayer.hからです:

enum media_player_states { 
    MEDIA_PLAYER_STATE_ERROR  = 0, 
    MEDIA_PLAYER_IDLE    = 1 << 0, 
    MEDIA_PLAYER_INITIALIZED  = 1 << 1, 
    MEDIA_PLAYER_PREPARING   = 1 << 2, 
    MEDIA_PLAYER_PREPARED   = 1 << 3, 
    MEDIA_PLAYER_DECODED   = 1 << 4, 
    MEDIA_PLAYER_STARTED   = 1 << 5, 
    MEDIA_PLAYER_PAUSED    = 1 << 6, 
    MEDIA_PLAYER_STOPPED   = 1 << 7, 
    MEDIA_PLAYER_PLAYBACK_COMPLETE = 1 << 8 
}; 

したがって、0はMEDIA_PLAYER_STATE_ERROR、4はMEDIA_PLAYER_PREPARINGとなります。 start()を呼び出す前にprepare()またはprepareAsync()を呼び出しましたか?

enum media_recorder_states { 
    MEDIA_RECORDER_ERROR     =  0, 
    MEDIA_RECORDER_IDLE     = 1 << 0, 
    MEDIA_RECORDER_INITIALIZED   = 1 << 1, 
    MEDIA_RECORDER_DATASOURCE_CONFIGURED = 1 << 2, 
    MEDIA_RECORDER_PREPARED    = 1 << 3, 
    MEDIA_RECORDER_RECORDING    = 1 << 4, 
}; 

ので記録のために、状態4はMEDIA_RECORDER_DATASOURCE_CONFIGUREDです:

これらは、MediaRecorderは述べています。

+0

私のコードではこれを実装しました。 MediaPlayerを初期化しようとしていますが、 'reset()'を呼び出すと、 'setAudioStreamType、setDataSource()'を使ってtryとcatch文を呼び出します。 (/sdcard/audio.3gp)、prepareAsync() 'を順番に' try'ブロックに追加します。それは私が最後に 'start();と呼ぶときです。 –

+0

まだ準備をしていません。 'prepareAsync()'を試してキャッチした直後であるべきですか? –

+0

prepareAsync()を使用する場合は、OnPreparedListenerを実装し、setOnPreparedListener()を呼び出して、start()を呼び出す前にonPrepared()コールバックを待機する必要があります。 –

関連する問題