Android音频播放

   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();
    }

   ◆结果:真正的实现了Mediaplayer的生命周期中比较重要的几个时期。能够自运行试一下。

相关文章
相关标签/搜索