2013-11-01 50 views
0

我正在處理與媒體服務器聯繫的應用程序。所以,我有一個填充媒體URL的數組。媒體類型是mp3MediaPlayer錯誤(1,-114)

我有一個ListView,每行指示數組的單元格之一。當收到每行的點擊事件時,它應運行setDataSource,preparestart MediaPlayer。第一次,我點擊了一行,所有的東西都沒問題,媒體流成功了。但是當我在最後一個媒體播放時點擊另一個媒體時,發生了error (1,-114)

基於MediaPlayer,我知道setDataSource應的MediaPlayer的Idle狀態下運行,因此,設置數據源之前,我調用reset移動到Idle狀態。

try { 
     mediaPlayer.reset(); 
     mediaPlayer.setDataSource(getMusicUrl()); 
    } catch (IllegalArgumentException e) { 
     e.printStackTrace(); 
    } catch (SecurityException e) { 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    mediaPlayer.prepareAsync(); 

我實現OnErrorListener,錯誤詳細信息如下:

What: 1MEDIA_ERROR_UNKNOWN

Extra: -114(我還沒有發現這個錯誤的任何文檔)

任何一個可以幫助我解決這個問題?

回答

0

當您決定切換到其他歌曲時,您可以嘗試撥打mediaPlayer.release()嗎?

+0

調用'release()'會將播放器發送到不應該調用其他方法的狀態。他需要在那時重新創建「MediaPlayer」(這不是一個可怕的想法,但可能不是必需的)。 – Dave