上一个博客讲到了搜索本地音乐文件,那么当搜索到后,我们怎么使用这个音乐文件呢?当然是根据路径来播放他,而要播放音乐,自然而然是要用到Android的mediaplayer这个类。

对于mediaplayer,大家应该都有些了解,所以就不累赘了,下面就讲下他的流程

上面是mediaplayer的状态图,看得出mediaplayer有两个极端的生命周期:idie还有end,当一个MediaPlayer对象被刚刚用new操作符创建或是调用了reset()方法后,它就处于Idle状态。当调用了release()方法后,它就处于End状态。这两种状态之间是MediaPlayer对象的生命周期。

实例化一个mediaplayer的方法有两种,分别是:

可以使用直接new的方式:
MediaPlayer mp = new MediaPlayer();
也可以使用create的方式,如:
MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了

1.以new一个mediaplayer为例,当new了一个mediaplayer的时候,我们需要为他设置数据源,通常有三个,一个是设置路径,一个是设置流

如:

 public void setDataSource(String path)
            throws IOException, IllegalArgumentException, SecurityException, IllegalStateException {
        setDataSource(path, null, null);
    }

这个方法用来设置sdk中的文件

(既得加上读取内存卡的权限)

还有:public void setDataSource(FileDescriptor fd)
            throws IOException, IllegalArgumentException, IllegalStateException {
        // intentionally less than LONG_MAX
        setDataSource(fd, 0, 0x7ffffffffffffffL);
    }

这个方法是用来设置asset文件夹的,比如程序自带的音乐文件