Android中的音频播放主要借助于MediaPlayer类来实现的,貌似他很神秘,但其实很简单,咱们一块儿来看看他的庐山真面目吧。
java
一:MediaPalyer的生命周期
网络
下面的这幅图,是在网上找的,这里咱们只针对其中的几个特殊的方法,进行说明:
ide
1:当一个MediaPlayer建立或者调用reset()方法以后,他处于空闲IDLE状态,在调用release以后,才会处于结束end状态
oop
2:任何一个MediaPlayer都必须处于准备状态,而后才开始播放。要开始播放必须调用start方法。
this
3:当MediaPlayer对象正在播放时,能够进行暂停与中止等操做,pause方法暂停,stop方法中止。处于暂停态的MediaPlayer能够经过start方法恢复播放,即从暂停的位置处继续播放;而处于中止态的必须经过prepare使之处于准备状态后,而后调用start方法开始播放
spa
二:经常使用方法
3d
1:构造方法
视频
(1)static MediaPlayer create(Context context,Uri uri):经过URI指定的音频建立一个多媒体播放器
对象
(2)static MediaPlayer create(Context context,int resId):经过资源ID建立一个多媒体播放器blog
2:得到属性
(1)int getCurrentPosition():获得当前的播放位置
(2)int getDuration():得到播放文件的总时长
(3)int getVideoheight():得到视频的高度
(4)int getVideoWidth():得到视频的宽度
3:判断状态
(1)boolean isLooping():是否循环播放
(2)boolean isPlaying():是否正在播放
4:设置属性
(1)void seekTo(int mesc):设置指定的播放位置(以毫秒为单位)
(2)void setDateSourece(String path):根据路径设置多媒体数据的来源
(3)void setDateSourece(FileDescriptor file):根据FileDescriptor设置多媒体数据的来源
(4)void setDateSourece(Uri uri):根据URI设置多媒体数据的来源
5:经常使用事件
(1)void prepare():准备资源
(2)void start():开始播放
(3)void pause():暂停播放
(4)void stop():中止播放
三:音频的播放
根据音频的来源,能够分为三种,分别为本地资源(应用程序内部)、内部的URL指向的资源(SDcard中)和外部的URL指向的资源(网络中)。这里咱们只说明其中的第一种方式
◆本地资源
(1)在res文件夹下建立文件名必须为raw的文件,来存放音频等。根据资源建立MediaPlayer
MediaPlayer mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.shijian); |
(2)调用MediaPlayer的start方法播放音乐
mediaPlayer.start(); |
(3)结果:单击start按钮以后,播放音乐。(这里没有作中止操做,因此不要轻易尝试哦)
四:简单的音乐播放器的制做
◆功能:在页面上放置三个按钮,实现单击start开始播放,单击pause后暂停播放,在单击start后从中止的地方开始播放,单击stop后中止播放。
◆具体实现:
(1)根据本地资源,建立MediaPlayer对象
mediaPlayer = MediaPlayer.create(this, R.raw.shijian); |
(2)为三个按钮添加监听事件
@Override public void onClick(View arg0) { switch (arg0.getId()) { case R.id.start: mediaPlayer.start();//播放音乐 break; case R.id.pause: mediaPlayer.pause();//暂停播放 break; case R.id.stop://中止播放的实现 mediaPlayer.pause();//先暂停 mediaPlayer.seekTo(0);//而后设置文件的播放其实位置 break; } } @Override protected void onDestroy() { mediaPlayer.stop();//实现的是当应用程序退出以后,音乐的所有中止播放 super.onDestroy(); } |