当我通过使用网络服务在流媒体中运行音频播放器时,出现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.
我在使用以下网址时出现上述错误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();
请告诉我我的编码或提供网址时出现此问题。
预先感谢。
edit:我通过使用以下代码解决了这个问题
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setInstanceFollowRedirects(false);
String redirectUrl = conn.getHeaderField("Location");
我通过使用上面的代码获得了重定向URL。
[如果它不与一台服务器一起工作(而与另一台服务器一起工作),则意味着问题出在服务器(响应)上,而不是您的应用程序中。请先在浏览器中尝试这些链接。
失败的链接正在重定向到另一个URL,该URL是实际的MP3 URL。因此,您需要连接到URL并获取可能包含实际mp3 URL的响应。
我认为这将获得新的URL。
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.getURL()// should give you the new URL dynamically created by server.