android:MediaPlayer

来源:互联网 发布:软件许可协议文本 编辑:程序博客网 时间:2024/05/10 18:58

(一)

private MediaPlayer mediaplayer =null;

mediaplayer = MediaPlayer.create(Player.this,Uri.parse("file://"+path));    //Player是现在这个activity,path是路径

mediaplayer.start();     //开始播放

mediaplayer.pause();  //暂定

mediaplayer.stop();    //停止

mediaplayer.release();   //释放资源

 

path的获取:

              String SDCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath();
              String path = SDCardRoot + File.separator + "music" + File.separator+ name_click;

(二)

 

        private MediaPlayer mediaplayer =null;

        mediaplayer = new mediaplayer();

       //播放歌曲

        private void playmusic(int positions){
       String path = Environment.getExternalStorageDirectory() + "/"
                                              + "music/" + list_names.get(positions);
         try {
                   mediaplayer.reset(); //reset重新设置播放器引擎
                   mediaplayer.setDataSource(path);
                   System.out.println(path + "2");
                   mediaplayer.prepare();                                                                  //new MediaPlayer()必须得有
                   mediaplayer.start();
                   mediaplayer.setOnCompletionListener(new OnCompletionListener() { //歌曲播放完监听器
                   public void onCompletion(MediaPlayer mp) {
                   nextmusic();
                   }
                   });
                   } catch (IllegalArgumentException e) {
                       // TODO Auto-generated catch block
                     e.printStackTrace();
                    } catch (IllegalStateException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                     } catch (IOException e) {
                       e.printStackTrace();
                      }

                      }

       

//播放下一首歌曲
            private void nextmusic() {
           if(position<list_names.size()){

             playmusic(++position);
            }
           else {
           position=0;
           playmusic(position);
          }
           }

 

在mp.pausr();再mp.start();后面遇到mp.preper()会报错,这是由于播放引擎的工作状态引起的,必须先进行mp.stop();然后再操作,在进行播放完之后也不行设置mp.reset();

原创粉丝点击