Android MediaPlayer бомбит в случайном порядке по HTTP потоку HTTP - PullRequest
2 голосов
/ 19 июня 2011

Данные извлекаются с удаленного сервера небольшими шагами на основе NPR. s StreamProxy метод здесь . Данные отправляются в выходной поток небольшими порциями. Вот все детали, которые я собрал:

  • Случайно генерирует исключения Socket, а именно исключение Broken Pipe.
  • У меня такое ощущение, что медиаплеер начинает читать эти данные до того, как их будет достаточно в сокете и видит частично отформатированные данные (возможно, только половину информации ID3), а затем умирает.
  • У меня есть вход в прослушиватели onInfo и OnError для MediaPlayer. Для OnInfo () успешные потоки будут давать то, что = 1 / extra = 44, а неудачные потоки часто сообщают, что = 1 / extra = 26. OnError обрабатывает ошибку с значением what = 1 / extra = -1.
  • Удаление информации id3 часто исправляет это (я думаю, что это связано со 2-ой пулей)
  • Это зависит от устройства в зависимости от того, что играть (бэкэнд PVPlayer худший)

Есть идеи по этому поводу? Я думаю, что это связано с тем, как MediaPlayer должен ждать, пока у него есть xx байтов данных перед анализом.

...