Как я могу играть потоковое Soundcloud на Android?

1

Я использую код в документации MediaPlayer;

String url = "http://........"; // your URL here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(url);
mediaPlayer.prepare(); // might take long! (for buffering, etc)
mediaPlayer.start();

Путь звука soundcloud - это что-то вроде этого;

https://api.soundcloud.com/tracks/41262720/stream?consumer_key=XXXXXX

В строке операций у меня есть эта ошибка;

prepare failed. status=0x1

Я тестирую его с другим источником, и он отлично работает;

http://www.colorado.edu/AmStudies/lewis/Design/blue.mp3

В чем проблема с источниками soundcloud? Нужна ли мне дополнительная настройка для медиаплеера?

Примечание: я использую эмулятор с 2.2 SDK

  • 1
    Попробуйте использовать OnPreparedListener() - вызов start сразу после prepare не очень хорошая идея для сетевого потока.
  • 0
    Функция prepare () не является асинхронной. Таким образом, она блокирует программу, пока она не будет готова. Существует другая функция подготовки, называемая prepareAsync (). Я использовал оба из них, но с той же ошибкой.
Показать ещё 1 комментарий
Теги:
streaming
soundcloud

1 ответ

2
Лучший ответ

Медиаплеер (по крайней мере, более старые версии) имеет проблемы с https-адресами. Вам нужно будет вручную разрешить URL-адрес (выдать запрос GET и проверить перенаправление), а затем дать результат MediaPlayer. Есть много других проблем с MediaPlayer, хотя, это не просто, чтобы заставить его работать.

  • 0
    Я проверю направленный URL @Jan. Можете ли вы посоветовать мне какую-нибудь другую библиотеку, кроме MediaPlayer?
  • 0
    Вы когда-нибудь заставляли это работать? я пытаюсь сделать то же самое, и я не могу понять это
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню