2012-03-02 4 views
7

Я получаю странную ошибку. Я играю с 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) 

Любые идеи о том, что?

Редактировать:

Ahh. Еще одна информация. 701 средства MEDIA_INFO_BUFFERING_START и 702 средства MEDIA_INFO_BUFFERING_END. Я думаю, что могу исправить их, если увеличить размер буфера?

Редактировать: Подождите. BufferingSize запекается в систему. Проклятый. :)

+1

OnInfoListener запускается для информации и предупреждений. –

ответ

1

Как вы писали, буферизация ...

К сожалению, нет других предложений.

1

Буферизация, как вы писали, - единственное, что я хотел бы добавить, это то, что, пока раздражает то, что она останавливается или запускается, эта информация очень полезна для вашего пользователя. Вы можете обновить его с помощью Toast (или Crouton!) Или указать какой-то статус буферизации, чтобы они не винили ваше приложение (они все равно будут!) Или чтобы они знали, что, скорее всего, их связь виновата - подключение к WIFI в этом случае - это действие, которое поможет.

1

У меня была та же проблема, но это произошло только при использовании конкретной Bluetooth-гарнитуры, и экран на моем телефоне был выключен. Приложение, в котором оно произошло, было Just Playlists, музыкальным проигрывателем, который я разработал и поддерживаю.

Это произошло только при потоковой передаче через Wi-Fi, а не через сотовую сеть. Мне удалось обойти эту проблему, перейдя в расширенные настройки Wi-Fi Android и отключив опцию Wi-Fi Optimization, которая утверждает, что «минимизирует потребление батареи при подключении Wi-Fi». Я уже использовал расширенные опции, чтобы поддерживать Wi-Fi.

Марка и модель гарнитуры - Phiaton PS 210 BTNC. Они поддерживают Bluetooth 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.

Смежные вопросы