問題が発生している間に、ようやくlogcatを確認する機会がありました。エラーメッセージは次のとおりです。
Completed command PLAYER_PREPARE status=-17
このフォーラムによると、「一度にアクティブになるMediaPlayerオブジェクトが多すぎることが原因です」。残念ながら、私はまだ修正を見つけていません。既知の唯一の回避策は、再起動することです。
どのアプリ(またはアプリの組み合わせ)がエラーを確実に再現するかはまだわかりません。
編集:MediaPlayerクラスを使用するすべてのアプリケーションが問題を引き起こす可能性があると思います。これらのアプリは、おそらくMediaPlayer.release()を呼び出す状態には決して到達しません。MediaPlayerを使用するアプリケーションのベンダーに連絡して、release()を呼び出すようにする必要があるかもしれません。
私の表面的な研究は解決策を導きませんでした、それはリブートなしで問題を修正するでしょう。
編集2: Android 2.3(Gingerbread)にアップデートしましたが、残念ながらこの問題は解決しません。
エラーに関するいくつかのlogcatメッセージ:
06-08 20:03:08.785 V/PlayerDriver( 2377): CommandCompleted
06-08 20:03:08.785 V/PlayerDriver( 2377): Completed command PLAYER_INIT status=1
06-08 20:03:08.785 V/PVPlayer( 2377): run_set_video_surface s=0, cancelled=0
06-08 20:03:08.785 V/PVPlayer( 2377): run_set_audio_output s=0, cancelled=0
06-08 20:03:08.785 V/PlayerDriver( 2377): Send player code: 5
06-08 20:03:08.785 V/PlayerDriver( 2377): Create realtime output
06-08 20:03:08.785 V/PlayerDriver( 2377): CommandCompleted
06-08 20:03:08.785 V/PlayerDriver( 2377): Completed command PLAYER_SET_AUDIO_SINK status=1
06-08 20:03:08.785 V/PVPlayer( 2377): run_prepare s=0, cancelled=0
06-08 20:03:08.789 V/PlayerDriver( 2377): Send player code: 7
06-08 20:03:08.789 V/PlayerDriver( 2377): disable natpkt - 0
06-08 20:03:08.789 D/ ( 2377): After GetDurationFromRandomScan: clipDuration=8716644
06-08 20:03:08.789 D/ ( 2377): After GetDurationFromRandomScan: clipDuration=8716644
06-08 20:03:08.804 V/PlayerDriver( 2377): HandleInformationalEvent: 26
06-08 20:03:08.804 V/PlayerDriver( 2377): HandleInformationalEvent: type=26 UNHANDLED
06-08 20:03:08.804 V/PlayerDriver( 2377): CommandCompleted
06-08 20:03:08.804 V/PlayerDriver( 2377): Completed command PLAYER_PREPARE status=-17
06-08 20:03:08.804 E/PlayerDriver( 2377): Command PLAYER_PREPARE completed with an error or info -17
06-08 20:03:08.804 V/PVPlayer( 2377): check_for_live_streaming s=-2147483648, cancelled=0
06-08 20:03:08.804 V/PlayerDriver( 2377): HandleInformationalEvent: 27
06-08 20:03:08.804 W/PlayerDriver( 2377): PVMFInfoErrorHandlingComplete
06-08 20:03:08.804 W/MediaPlayer(22989): info/warning (1, 26)
06-08 20:03:08.804 E/MediaPlayer(22989): error (1, -17)
06-08 20:03:08.808 I/AudioService( 2471): AudioFocus abandonAudioFocus() from android.media.AudioManager@480f3630null
06-08 20:03:08.812 I/AudioService( 2471): AudioFocus abandonAudioFocus() from android.media.AudioManager@480f3630null
06-08 20:03:08.812 D/PlayTo (22989): opening content://dtmedia/media/1553 with Android Player
06-08 20:03:08.812 D/PlayTo (22989): About to set Android Player datasource to content://dtmedia/media/1553
06-08 20:03:08.812 E/PVPlayer( 2377): isDrmfile playing 0
06-08 20:03:08.812 V/PVPlayer( 2377): reset
06-08 20:03:08.812 V/PlayerDriver( 2377): Send player code: 18
06-08 20:03:08.812 V/PlayerDriver( 2377): handleCancelAllCommands
06-08 20:03:08.816 V/PlayerDriver( 2377): CommandCompleted
06-08 20:03:08.816 V/PlayerDriver( 2377): Completed command PLAYER_CANCEL_ALL_COMMANDS status=1
06-08 20:03:08.816 V/PlayerDriver( 2377): Send player code: 11
06-08 20:03:08.816 V/PlayerDriver( 2377): handleReset
06-08 20:03:08.816 V/PlayerDriver( 2377): CommandCompleted
06-08 20:03:08.816 V/PlayerDriver( 2377): Completed command PLAYER_RESET status=1
06-08 20:03:08.816 V/PlayerDriver( 2377): Send player code: 17
06-08 20:03:08.816 V/PlayerDriver( 2377): handleRemoveDataSource
06-08 20:03:08.816 V/PlayerDriver( 2377): CommandCompleted
06-08 20:03:08.816 V/PlayerDriver( 2377): Completed command PLAYER_REMOVE_DATA_SOURCE status=1
06-08 20:03:08.816 V/PVPlayer( 2377): unmap file