“准备失败:状态= 0x1”流式传输时发生异常

时间:2012-05-14 08:05:20

标签: android streaming

我正在使用StreamProxy类来使用MediaPlayer进行流式传输。所以,我写了一些代码来启动本地服务器:

ProxyStream proxyStream = new ProxyStream();
proxyStream.init();
proxyStream.start();

因此,成功创建了本地服务器并获得了特殊端口。 (port 41257获得)。我知道我们可以通过http://127.0.0.1:41257/http://printf.ir/music/01.mp3链接访问网络文件。现在,我想使用MediaPlayer对象进行流式处理,并尝试以下代码:

this.mediaPlayer.setDataSource("127.0.0.1:41257/http://printf.ir/music/01.wma");
this.mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
this.mediaPlayer.prepare();

在运行时,异常发生在第三行代码中,我将其粘贴在此处:

05-17 18:49:49.989: W/System.err(10444): java.io.IOException: Prepare failed.: status=0x1
05-17 18:49:49.989: W/System.err(10444): at android.media.MediaPlayer.prepare(Native Method)
05-17 18:49:49.989: W/System.err(10444): at com.exmaple.stream.StreamMediaPlayerActivity.onClick(StreamMediaPlayerActivity.java:83)
05-17 18:49:49.989: W/System.err(10444): at android.view.View.performClick(View.java:2485)
05-17 18:49:49.989: W/System.err(10444): at android.view.View$PerformClick.run(View.java:9080)
05-17 18:49:49.989: W/System.err(10444): at android.os.Handler.handleCallback(Handler.java:587)
05-17 18:49:49.989: W/System.err(10444): at android.os.Handler.dispatchMessage(Handler.java:92)
05-17 18:49:49.989: W/System.err(10444): at android.os.Looper.loop(Looper.java:130)
05-17 18:49:49.989: W/System.err(10444): at android.app.ActivityThread.main(ActivityThread.java:3687)
05-17 18:49:49.989: W/System.err(10444): at java.lang.reflect.Method.invokeNative(Native Method)
05-17 18:49:49.989: W/System.err(10444): at java.lang.reflect.Method.invoke(Method.java:507)
05-17 18:49:49.989: W/System.err(10444): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
05-17 18:49:49.989: W/System.err(10444): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
05-17 18:49:49.989: W/System.err(10444): at dalvik.system.NativeStart.main(Native Method)

如何使用MediaPlayer进行流式传输?请帮我解决这个问题。

谢谢你的进步:)

1 个答案:

答案 0 :(得分:0)

你试过像

这样的事吗?
private void initMediaPlayer() {
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mediaPlayer.start();
statusText.setText("Playing...");
}
});
}

Here是一个贯穿使用MediaPlayer for Online Streams的整个过程的教程,它是本教程的第二部分......我在大约3个月前使用过这个教程来完成我的一个项目所以它确实有效,你应该放弃它