2012-06-18 111 views
1

错误:
可以在客户端无法打开文件,试图服务器端 无法创建媒体播放器android在创建mediaplayer时发生错误?

protected void onListItemClick(ListView l, View v, int position, long id) { 

     //get selected items 
     String selectedValue = (String) getListAdapter().getItem(position); 

     try { 

      MediaPlayer objMediaPlayer = new MediaPlayer(); 
      objMediaPlayer = new MediaPlayer(); 
      objMediaPlayer.setDataSource("http://192.168.1.3:3000/songs/WakaWaka.mp3"); 
      objMediaPlayer.prepare(); 
      objMediaPlayer.start(); 


     } catch (IllegalArgumentException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (SecurityException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IllegalStateException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
} 
+1

你尝试添加mp.prepare ();在mp.start()之前; –

+0

是的,我尝试了,但仍然不工作,也删除mp.start()然后也给出了一个相同的错误。 – jayesh

+0

您是否尝试过其他网址来源? –

回答

2

检查Android的媒体播放器State Diagram

您必须在调用start()之前调用reset()e prepare()。

3

试试这个:

private MediaPlayer objMediaPlayer = new MediaPlayer();

objMediaPlayer = new MediaPlayer();

 try { 
     objMediaPlayer.setDataSource(path); 


     objMediaPlayer.prepare(); 

     objMediaPlayer.start(); 

    } catch (IllegalArgumentException e) { 

     e.printStackTrace(); 
    } catch (IllegalStateException e) { 

     e.printStackTrace(); 
    } catch (IOException e) { 

     e.printStackTrace(); 
    } 
1

我去了你的问题。但无法得到很多。有一点可以肯定的是,你在这里指定的url不存在。所以我利用我自己的做了一个样本。检查出来,

mediaPlayer mp=new MediaPlayer(); 
     try { 


    mp.setDataSource("http://182.71.230.252/developers/blind_willie.mp3"); 
       mp.prepare(); 
      } catch (IllegalArgumentException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IllegalStateException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      mp.start(); 
+0

不与我的代码一起工作任何更改需要在AndroidManifest.xml中完成 – jayesh

+0

没有。没有要求许可。你确定你连接到网络? –

+0

是的,我连接到网络和我的Android版本4.0.3 – jayesh

2

这可能帮助一些人。为了从流在线视频时,你必须 添加到“AndroidManifest.xml中”

<uses-permission android:name="android.permission.INTERNET" />