Android java.io.IOException с потоковым аудио - PullRequest
2 голосов
/ 19 августа 2011

Когда я запускаю аудиоплеер в потоковом режиме с помощью веб-сервисов, я получаю IOException

08-19 09:24:54.235: WARN/System.err(394): java.io.IOException: Prepare failed.: status=0x64
08-19 09:24:54.235: WARN/System.err(394):     at android.media.MediaPlayer.prepare(Native Method)
08-19 09:24:54.235: WARN/System.err(394):     at com.sparsh.xavier.media.activity.AudioPlayerActivity$6$1.run(AudioPlayerActivity.java:183)
08-19 09:24:54.295: WARN/System.err(394):     at android.os.Handler.handleCallback(Handler.java:587)
08-19 09:24:54.295: WARN/System.err(394):     at android.os.Handler.dispatchMessage(Handler.java:92)
08-19 09:24:54.295: WARN/System.err(394):     at android.os.Looper.loop(Looper.java:123)
08-19 09:24:54.295: WARN/System.err(394):     at android.app.ActivityThread.main(ActivityThread.java:4627)
08-19 09:24:54.295: WARN/System.err(394):     at java.lang.reflect.Method.invokeNative(Native Method)
08-19 09:24:54.295: WARN/System.err(394):     at java.lang.reflect.Method.invoke(Method.java:521)
08-19 09:24:54.295: WARN/System.err(394):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-19 09:24:54.295: WARN/System.err(394):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-19 09:24:54.295: WARN/System.err(394):     at dalvik.system.NativeStart.main(Native Method)
08-19 09:24:55.075: ERROR/AudioService(68): Media server died.

У меня вышеупомянутая ошибка, когда я использую URL ниже http://cdnbakmi.kaltura.com/p/672322/sp/67232200/raw/entry_id/0_281db5u2/version/0

, но выполняю свое приложениебез каких-либо ошибок, когда я пытаюсь с примером URL http://www.pocketjourney.com/downloads/pj/tutorials/audio.mp3

Я пишу ниже код для моего приложения

mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.reset();
mediaPlayer.setDataSource(audioURL);
mediaPlayer.prepare(); // might take long! (for buffering, etc)
mediaPlayer.start();

, пожалуйста, скажите мне, это проблема с моим кодированием или спредоставление URL.

заранее спасибо.

edit: Я решаю эту проблему с помощью этого кода

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setInstanceFollowRedirects(false);
String redirectUrl = conn.getHeaderField("Location");

Я получаю URL перенаправления с помощьюиспользуя приведенный выше код.

1 Ответ

0 голосов
/ 19 августа 2011

Когда он не работает с одним сервером (и работает на другом), это означает, что проблема в сервере (ответ), а не в вашем приложении.Сначала попробуйте эти ссылки в браузере.

Неудачная ссылка перенаправляет на другой URL-адрес, который является действительным mp3-адресом.Таким образом, вам нужно подключиться к URL-адресу и получить ответ, который может содержать фактический mp3-адрес.

Я думаю, что это получить новый URL-адрес.

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
 urlConnection.getURL()// should give u the new url dynamically created by server.
...