Android Shoutcast: Хотите помочь, чтобы играть в ShoutCast Streaming в 1.6 - PullRequest
1 голос
/ 08 декабря 2010

Мое приложение воспроизводит потоковую передачу ShoutCast, а целевая ОС имеет версию 1.6 и выше. Я применил некоторый код из приложения NPR с некоторыми изменениями.

Вот код

mediaPlayer = new MediaPlayer();
mediaPlayer.reset();
mediaPlayer.setDataSource(url);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
// Log.d(LOG_TAG, "Preparing: " + playUrl);
mediaPlayer.prepareAsync();
mediaPlayer.start();`

Код ничего не воспроизводит на симуляторе или устройстве (тестирование в Samsung Galaxy с 2.1).


Вот сообщение LogCat.

собирается играть http://88.191.81.31:8206
12-08 14: 16: 42.229: WARN / MediaPlayer (5520): информация / предупреждение (1, 26)
12-08 14: 16: 42.239: ОШИБКА / PlayerDriver (1870): команда PLAYER_INIT завершена с ошибкой или информацией PVMFFailure
12-08 14: 16: 42.239: ОШИБКА / MediaPlayer (5520): ошибка (1, -1)
12-08 14: 16: 42.239: WARN / PlayerDriver (1870): PVMFInfoErrorHandlingComplete
12-08 14: 16: 42.259: ОШИБКА / MediaPlayer (5520): запуск вызван в состоянии 0
12-08 14: 16: 42.259: ОШИБКА / MediaPlayer (5520): ошибка (-38, 0)
12-08 14: 16: 42.299: INFO / MediaPlayer (5520): информация (1,26)
12-08 14: 16: 42.299: ОШИБКА / MediaPlayer (5520): ошибка (1, -1)
12-08 14: 16: 42.304: ОШИБКА / MediaPlayer (5520): ошибка (-38,0)


Вот вопрос. 1. Можете ли вы сказать мне, что происходит в устройстве? 2. Как решить эту ошибку?

1 Ответ

4 голосов
/ 08 декабря 2010

Вы звоните start() слишком рано.Javadocs MediaPlayer объясняет это (посмотрите на картинку):

  1. Либо вам нужно позвонить prepare(), прежде чем позвонить start(), либо

  2. Вы вызываете prepareAsync() и ждете вызова OnPreparedListener.onPrepared(), затем (возможно, внутри этого метода) вызываете start().

Обновлено:

Потоки Shoutcast изначально поддерживаются только в 2.2.Для более ранних версий вы должны создать локальный прокси, который меняет протокол ответа с ICY (shoutcast) на HTTP, который будет поддерживать медиаплеер.Взгляните на это:

http://code.google.com/p/npr-android-app/source/browse/trunk/Npr/src/org/npr/android/news/StreamProxy.java

Это ранее обсуждалось:

Прослушивание shoutcast с Android

...