2011-05-26 64 views
0

我想創建一個應用程序來播放現場radio.I使用以下方法打開http連接,並給這個URL「http://64.62.xxx.xxxx:xxx /」 但是我得到空指針異常,打開HTTP連接音頻流

   public InputStream OpenHttpConnection(String urlString) throws IOException 
{ 
    InputStream in = null; 
    int response = -1; 

    URL url = new URL(urlString); 
    URLConnection conn = url.openConnection(); 


    if (!(conn instanceof HttpURLConnection))      
     throw new IOException("Error connecting"); 

    try{ 
     HttpURLConnection httpConn = (HttpURLConnection) conn; 
     httpConn.setAllowUserInteraction(false); 
     conn.setDoInput(true); 
     httpConn.setInstanceFollowRedirects(true); 
     httpConn.setRequestMethod("GET"); 
     httpConn.connect(); 
     response = httpConn.getResponseCode(); 
     System.out.println("Response : "+response); 
     if (response == HttpURLConnection.HTTP_OK) 
     { 
      in = httpConn.getInputStream(); 
     }  
    } 
    catch (Exception ex) 
    { 
     throw new IOException("Error connecting");    
    } 
    return in;  
} 

是否有來自此類URL的流數據的任何其他方式或我需要添加別的東西在上面的方法?

我創建的MediaPlayer.My logcat的的一個實例顯示如下錯誤:

05-25 15:50:08.067:DEBUG/MediaPlayer的(1032):可以在客戶機側沒有打開文件,試圖服務器端 05:15:50:08.189:WARN/MediaPlayer(1032):info/warning(1,26) 05-25 15:50:08.217:ERROR/PlayerDriver(31):命令PLAYER_INIT帶有錯誤或info PVMFFailure 05:15:50:08.217:ERROR/MediaPlayer(1032):error(1,-1) 05-25 15:50:08.237:WARN/PlayerDriver(31):PVMFInfoErrorHandlingComplete 05-25 15 :50:08.357:DEBUG/MediaPlayer(1032):創建失敗: 05-25 15:50:0 8.357:DEBUG/MediaPlayer(1032):java.io.IOException:Prepare failed .: status = 0x1 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at android.media.MediaPlayer.prepare(Native Method ) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at android.media.MediaPlayer.create(MediaPlayer.java:608) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):在android.media.MediaPlayer.create(MediaPlayer.java:585) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at org.sample.AudioPlayer.AudioPlayer.PlayRadio(AudioPlayer.java:190) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at org.sample.AudioPlayer.AudioPlayer.access $ 1(AudioPlayer.java:123) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032) :at org.sample.AudioPlayer.AudioPlayer $ 3.onClick(AudioPlayer.java:77) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032) :at android.view.View.performClick(View.java:2364) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at android.view.View.onTouchEvent(View.java:4179) 05 -25 15:50:08.357:DEBUG/MediaPlayer(1032):在android.widget.TextView.onTouchEvent(TextView.java:6541) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):在android。 view.View.dispatchTouchEvent(View.java:3709) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 05-25 15: 50:08.357:DEBUG/MediaPlayer(1032):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):在android.view.ViewGroup。 dispatchTouchEvent(ViewGroup.java:884) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at android.view.ViewGroup.dispatchTouchE通風口(ViewGroup.java:884) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at com.android.internal.policy.impl.PhoneWindow $ DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 05 -25 15:50:08.357:DEBUG/MediaPlayer(1032):at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 05-25 15:50:08.357:DEBUG/MediaPlayer 1032):at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at com.android.internal.policy.impl.PhoneWindow $ DecorView。 dispatchTouchEvent(PhoneWindow.java:1643) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at android.view.ViewRoot.handleMessage(ViewRoot.java:1691) 05-25 15:50:08.357: DEBUG/MediaPlayer(1032):在android.os.Handler.dispatchMessage(Handler.java:99) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at android.os.Looper.loop(Looper.java:123) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at android.app.ActivityThread.main(ActivityThread.java:4363) 05-25 15:50:08。357:DEBUG/MediaPlayer(1032):at java.lang.reflect.Method.invokeNative(Native Method) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at java.lang.reflect.Method.invoke (Method.java:521) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:860) 05-25 15 :50:08.357:DEBUG/MediaPlayer(1032):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):at dalvik .system.NativeStart.main(本機方法) 05-25 15:51:05.277:DEBUG/dalvikvm(97):GC在127ms中釋放了14個對象/ 560字節 05-25 15:51:13.280:DEBUG/AndroidRuntime 1032):關閉VM 05-25 15:51:13.280:WARN/dalvikvm(1032):threadid = 3:以未捕獲的異常退出的線程(組= 0x4001b188) 05-25 15:51:13.280:ERROR/AndroidRuntime(1032):未捕獲的句柄:由於未捕獲的異常導致主線程退出

Thanks!

回答

0

檢查從服務器ü要播放音頻 創建一個媒體播放器instanse並設置文件描述符中的setDataSource

m_player.setOnPreparedListener(this); 
m_player.setAudioStreamType(AudioManager.STREAM_MUSIC); 
m_player.setDataSource(filedescriptor fd); 
m_player.prepareAsync(); 
+0

感謝您的答覆jegan_uü可以使用HTTP調試 的連接,我有一已經創建了一個媒體播放器的實例..我得到這個錯誤:05-25 15:50:08.067:DEBUG/MediaPlayer(1032):無法打開客戶端上的文件,嘗試服務器端 05-25 15:50 :08.217:錯誤/ PlayerDriver(31):命令PLAYER_INIT完成與錯誤或信息PVMFFailure 05-25 15:50:08.217:錯誤/ MediaPlayer(1032):錯誤(1,-1) 05-25 15:50:08.237:WARN/PlayerDriver(31):PVMFInfoErrorHandlingComplete 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):創建失敗: 05-25 15:50:08.357:DEBUG/MediaPlayer(1032):java.io.IOException:準備失敗:狀態= 0x1 – 2011-05-26 10:43:12