Коды ошибок Android MediaPlayer? - PullRequest
       3

Коды ошибок Android MediaPlayer?

19 голосов
/ 04 октября 2010

Я борюсь за то, чтобы заставить работать прямой эфир на Android.Я использую класс MediaPlayer, просто устанавливаю URL и играю на нем.Он прекрасно работает по большей части, но через 5-30 минут он неизбежно умирает.На телефонах 2.1 (точнее героя) я получаю этот вывод журнала

W/MediaPlayer( 7919): info/warning (1, 26)
I/MediaPlayer( 7919): Info (1,26)
I/MediaStreamService( 7919): mPlayer info code:1  extra:26
E/MediaPlayer( 7919): error (1, -11)
E/MediaPlayer( 7919): Error (1,-11)

, где MediaStreamService - это моя служба, содержащая MediaPlayer вывод, полученный из OnInfoListener

На 2.2 телефонах я никогда не получаю обратный вызов OnInfoListener, поток просто умирает.Но я вижу это в logcat

E/HTTPStream( 1020): recv failed, errno = 11 (Try again)
E/HTTPDataSource( 1020): retrying connection failed

Кажется, работает безупречно на моем телефоне 1.6, несмотря на постоянный спам logcat

E/PlayerDriver( 82): Invalid percentage value <big growing number>

Мой вопрос, что делают коды ошибок (1, 26) значит?Что вызывает сбой моего медиаплеера?Связана ли проблема 2.1 с проблемой 2.2?Спасибо, Натан

Редактировать: я искал в исходном коде OnInfoListener и обнаружил public static final int MEDIA_INFO_UNKNOWN = 1; Я не совсем уверен, что это значит, и не могу найти, где хранятся эти дополнения ..Любое понимание того, что означает неизвестная информация для СМИ?или то, что означают эти 26, было бы очень ценно.

Ответы [ 3 ]

31 голосов
/ 12 октября 2010

Мой вопрос: что означают коды ошибок (1, 26)?

  • 26 означает PVMFInfoErrorHandlingStart, просто указание на ошибку

Ошибка -11, что означает PVMFErrTimeout.Вы можете проверить файлы определений здесь текст ссылки

0 голосов
/ 08 октября 2010

Чтобы начать воспроизведение, необходимо вызвать start (). После успешного завершения start () объект MediaPlayer находится в состоянии Started. isPlaying () может быть вызван, чтобы проверить, находится ли объект MediaPlayer в состоянии Started.

Находясь в состоянии «Запущено», внутренний движок проигрывателя вызывает предоставленный пользователем метод обратного вызова OnBufferingUpdateListener.onBufferingUpdate (), если OnBufferingUpdateListener был предварительно зарегистрирован через setOnBufferingUpdateListener (OnBufferingUpdateListener). Этот обратный вызов позволяет приложениям отслеживать состояние буферизации при потоковой передаче аудио / видео.

Вызов start () не влияет на объект MediaPlayer, который уже находится в состоянии «Запущено».

Может быть, это часть ответа.

0 голосов
/ 07 октября 2010

Может быть, данные RDS?Вы устанавливаете размер буфера вручную?

...