2014-10-06 153 views
3

我想制作收音机播放器的例子,但我有一些错误。我无法修复它。Android MediaPlayer W/MediaPlayer:info/warning(703,203)

我的源代码

String url = ""; //Shoutcast Radio URL 
    mp = new MediaPlayer(); 
    mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    try { 
     mp.setDataSource(url); 
     mp.prepare(); 
    } catch (IllegalArgumentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (SecurityException e) { 
     // TODO Auto-generated catch block 
     Log.e(TAG, "SecurityException"); 
    } catch (IllegalStateException e) { 
     // TODO Auto-generated catch block 
     Log.e(TAG, "IllegalStateException"); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     Log.e(TAG, "IOException"); 
    } 

我的错误(logcat的)

E/MediaPlayer﹕ Should have subtitle controller already set 
W/MediaPlayer﹕ info/warning (703, 203) 
W/MediaPlayer﹕ info/warning (701, 0) 
W/MediaPlayer﹕ info/warning (702, 0) 
W/MediaPlayer﹕ info/warning (702, 0) 
+0

信息。 '701'表示MEDIA_INFO_BUFFERING_START和'702'表示MEDIA_INFO_BUFFERING_END – Gattsu 2014-10-06 11:19:44

+0

是的,我知道,但我怎么修复它? – 2014-10-06 11:29:02

+0

我也面临同样的问题,当我尝试与Nexus 5(更新为lolipop)每次它卡住秒,并开始发挥一次又一次击中 – 2015-01-14 12:14:01

回答

1

“应该有副标题控制器已经设置”文本只是一个警告并不是一个错误。它在Android Kitkat 4.4中引用了MediaPlayer的新实现(它们为视频添加了字幕功能,但由于某些原因,即使媒体只是音频,它也会尝试使用字幕)。

因此,您可以忽略该警告。

如果不播放,您可以尝试使用OnPreparedListener紧接着mp.prepare();mp.start();

mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mediaPlayer) { 
     mp.start(); 
    } 
}); 
+2

我可以玩。但5秒后停止并继续... – 2014-10-06 11:38:21

+0

这似乎是关于流的东西,你可以用设备上的一些播放器正确播放它吗? – Heisenberg 2014-10-06 11:39:53