Android mediaPlayer 获取数据有三种方式,一种是在res目录下建一个raw文件夹,从资源文件中播放,第二种是从内存卡中获取数据,第三种是从网络上获取数据;第一种方式是首先实例化一个MediaPlayer,然后create创建一个。实例化MediaPlayer有两种方式,分别是
1)如何获得MediaPlayer实例:
可以使用直接new的方式:
MediaPlayer mp = new MediaPlayer();
也可以使用create的方式,如:
MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了
获取音乐与进度条的总时间,判断它是否处于播放的状态,如果是就暂停,如果不是就开始播放。从内存卡中获取数据,首先在配置文件里给它设置权限,它不同于第一种地方就在于,实例化MediaPlayer是通过new MediaPlayer,设置类型,在设置音源;在开始播放之前准备一下。给mediaPlayer设置准备完成的监听。第三种方式是从网络上获取数据和第二种方法一样的地方在于首先在清单文件里要设置一个联网的权限,设置音源,在设置网络异步准备。3)对播放器的主要控制方法:
Android通过控制播放器的状态的方式来控制媒体文件的播放,其中:
prepare()和prepareAsync() 提供了同步和异步两种方式设置播放器进入prepare状态,需要注意的是,如果MediaPlayer实例是由create方法创建的,那么第一次启动播放前不需要再调用prepare()了,因为create方法里已经调用过了。
start()是真正启动文件播放的方法,
pause()和stop()比较简单,起到暂停和停止播放的作用,
seekTo()是定位方法,可以让播放器从指定的位置开始播放,需要注意的是该方法是个异步方法,也就是说该方法返回时并不意味着定位完成,尤其是播放的网络文件,真正定位完成时会触发OnSeekComplete.onSeekComplete(),如果需要是可以调用setOnSeekCompleteListener(OnSeekCompleteListener)设置监听器来处理的。
release()可以释放播放器占用的资源,一旦确定不再使用播放器时应当尽早调用它释放资源。