Android音频播放

   Android中的音频播放主要借助于MediaPlayer类来实现的,貌似他很神秘,但其实很简单,我们一起来看看他的庐山真面目吧。

   一:MediaPalyer的生命周期

   下面的这幅图,是在网上找的,这里我们只针对其中的几个特殊的方法,进行说明:

   1:当一个MediaPlayer创建或者调用reset()方法之后,他处于空闲IDLE状态,在调用release之后,才会处于结束end状态

   2:任何一个MediaPlayer都必须处于准备状态,然后才开始播放。要开始播放必须调用start方法。

   3:当MediaPlayer对象正在播放时,可以进行暂停与停止等操作,pause方法暂停,stop方法停止。处于暂停态的MediaPlayer可以通过start方法恢复播放,即从暂停的位置处继续播放;而处于停止态的必须通过prepare使之处于准备状态后,然后调用start方法开始播放

   二:常用方法

   1:构造方法

   (1)static MediaPlayer create(Context context,Uri uri):通过URI指定的音频创建一个多媒体播放器

   (2)static MediaPlayer create(Context context,int resId):通过资源ID创建一个多媒体播放器

   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的生命周期中比较重要的几个时期。可以自运行试一下。



你可能感兴趣的:(android,mediaplayer,音频播放)