MediaPlayer停止并重新启动

问题描述:

我收到一个奇怪的错误。 我使用MediaPlayer播放媒体流(如shoutcast或icecast)。
有时突然在播放流(总随机)发生错误,流停止并重新启动。
OnErrorListener不会被触发!MediaPlayer停止并重新启动

的logcat:

03-02 17:50:36.274: W/MediaPlayer(16799): info/warning (702, 0) 
03-02 17:50:36.274: I/MediaPlayer(16799): Info (702,0) 

或像这样:

03-02 17:50:14.250: W/MediaPlayer(16799): info/warning (703, 0) 
03-02 17:50:14.250: W/MediaPlayer(16799): info/warning (701, 0) 
03-02 17:50:14.250: I/MediaPlayer(16799): Info (703,0) 
03-02 17:50:14.250: I/MediaPlayer(16799): Info (701,0) 

03-02 18:03:33.906: W/MediaPlayer(16799): info/warning (703, 126) <br> 
03-02 18:03:33.906: I/MediaPlayer(16799): Info (703,126) 

上任何想法?

编辑:

啊。还有一个信息。 701表示MEDIA_INFO_BUFFERING_START702表示MEDIA_INFO_BUFFERING_END。 我想我可以修复这些,如果我增加缓冲区大小?

编辑:但是等等。 BufferingSize被烘焙到系统中。诅咒。 :)

+1

OnInfoListener的确触发了信息和警告。 – 2012-03-08 13:50:00

正如你所写,缓冲...

对不起,没有其他的建议。

这是你写的缓冲 - 我想补充的唯一的事情是,虽然它很烦人,它停止或开始,这些信息对你的用户非常有用。你可能想用Toast(或者Crouton!)来更新他,或者指出某种缓冲状态,这样他们就不会责怪你的应用程序(他们无论如何都会这样做),或者让他们知道这可能是他们连接的责任 - 在这种情况下连接到WIFI是一种有助于的行动。

我看到同样的问题,但只有在使用特定的蓝牙耳机并且手机屏幕关闭时才会发生。它发生的应用程序是Just Playlists,我开发和支持的音乐播放器。

它只发生在通过Wi-Fi而不是通过小区网络传输时。通过使用Android先进的Wi-Fi设置并禁用“Wi-Fi优化”选项,我可以解决该问题,该选项声称“在Wi-Fi开启时最大限度地减少电池使用量”。我已经使用高级选项来始终开启Wi-Fi。

该耳机的品牌和型号是Phiaton PS 210 BTNC。他们支持蓝牙3.0,这让我怀疑这是问题的一部分。我在Android 4.1.x和4.2.2下都遇到了这个问题。下面是出现问题时,一个日志摘录,然后恢复:

I/AwesomePlayer( 131): cache is running low (1.90 secs) , pausing. 
W/MediaPlayer(3028): info/warning (703, 0) 
W/MediaPlayer(3028): info/warning (701, 0) 
I/MediaPlayer(3028): Info (703,0) 
I/MediaPlayer(3028): Info (701,0) 
I/audio_a2dp_hw( 131): suspend_audio_datapath: state 1 
E/bt-btif ( 889): bta_av_str_stopped:audio_open_cnt=1, p_data 586a58f8 
W/bt-btif ( 889): bta_dm_rm_cback:1, status:6 
W/bt-btif ( 889): bta_dm_rm_cback:1, status:6 
I/BluetoothA2dpServiceJni( 889): bta2dp_audio_state_callback 
I/audio_a2dp_hw( 131): skt_disconnect: fd 46 
D/A2dpStateMachine( 889): Connected process message: 101 
D/A2dpStateMachine( 889): A2DP Playing state : device: 00:18:09:06:08:0C State:10->11 
I/AwesomePlayer( 131): cache has filled up (6.00 secs), resuming. 

我还没有看到在电池使用的影响是什么禁用的Wi-Fi进行优化。