MediaPlayer останавливается и перезапускается - PullRequest
7 голосов
/ 02 марта 2012

Я получаю странную ошибку. Я играю с MediaPlayer в медиапотоке (например, shoutcast или icecast).
Иногда внезапно при воспроизведении потока (всего случайного) происходит ошибка, поток останавливается и перезапускается.
OnErrorListener не срабатывает!

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_START, а 702 означает MEDIA_INFO_BUFFERING_END. Я думаю, что я мог бы это исправить, если я увеличу размер буфера?

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

Ответы [ 3 ]

1 голос
/ 28 октября 2012

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

1 голос
/ 30 марта 2013

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

Это происходило только при потоковой передаче через Wi-Fi, а не через сотовую сеть. Мне удалось обойти эту проблему, перейдя в расширенные настройки Wi-Fi в Android и отключив опцию «Оптимизация Wi-Fi», которая утверждает, что «минимизирует использование батареи при включенном 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.

1 голос
/ 08 марта 2012

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

Извините, других предложений нет.

...