2013-11-01 43 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