2012-05-14 63 views
1

我正在使用StreamProxy類以便使用MediaPlayer進行流式傳輸。所以,我寫了一些代碼爲隨之啓動本地服務器:「準備失敗:狀態= 0x1」流式傳輸發生異常

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流?!請幫我解決這個問題。

感謝你提前:)

+0

這絕對是一個格式不正確的URL:http://127.0.0.1:41257/http :// printf.ir/music/01.wma',嘗試使用這一個:'http://127.0.0.1: 41257 /'看看會發生什麼。 – yorkw

+0

但我想流'http:// printf.ir/music/01.wma',我怎樣才能使用'http://127.0.0.1:41257'流??! –

+0

StreamProxy實際上做了什麼是從'http:// printf.ir/music/01.wma'下載媒體內容並重新發布到'http://127.0.0.1:41257 /'。 – yorkw

回答

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的用於在線流的整個過程中去,它是第二部分教程...我使用本教程大約3個月前我的項目之一,所以它的工作,你應該給它以前

+0

我試過了,但它對我沒有用。 –

+0

當你嘗試這個或者是不同的錯誤時,你會得到同樣的結果嗎? –

+0

我收到了與我發佈的問題相同的錯誤。 –

相關問題