ในที่สุดฉันก็มีโอกาสดู logcat ในขณะที่ปัญหากำลังเกิดขึ้น ข้อความแสดงข้อผิดพลาดอ่าน:
Completed command PLAYER_PREPARE status=-17
ตามฟอรัมนี้"เกิดจากการมีวัตถุ MediaPlayer มากเกินไปเปิดใช้งานในครั้งเดียว" น่าเสียดายที่ฉันยังไม่พบวิธีแก้ไข วิธีแก้ปัญหาที่รู้จักกันเท่านั้นดูเหมือนว่าจะรีบูตเครื่อง
ฉันยังไม่แน่ใจว่าแอปใด (หรือการรวมกันของแอพ) ทำให้เกิดข้อผิดพลาดได้อย่างน่าเชื่อถือ
แก้ไข : ฉันเดาว่าแอปพลิเคชันใด ๆ ที่ใช้คลาส MediaPlayerสามารถทำให้เกิดปัญหาได้ ปพลิเคชันเหล่านั้นอาจจะไม่เคยเข้าถึงสภาวะที่พวกเขาเรียกMediaPlayer.release () บางทีเราจำเป็นต้องติดต่อกับผู้ขายของการใช้งานที่ใช้ MediaPlayer เพื่อให้พวกเขาให้แน่ใจว่าพวกเขาเรียกปล่อย ()
การวิจัยผิวเผินของฉันไม่ได้นำไปสู่การแก้ปัญหาซึ่งจะแก้ไขปัญหาโดยไม่ต้องรีบูตเครื่อง
แก้ไข 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