2011-05-26 78 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