首页 > 代码库 > 安卓学习之音频、视频

安卓学习之音频、视频

播放音频

  android中播放音频可以使用MediaPlayer类来实现,一下是它的一些方法:

      

              方法名             功能描述
            setDataSource()        设置要播放的音频文件的位置。
            prepare()            在开始播放之前调用这个方法完成准备工作。
            start()               开始或继续播放音频。
            pause()               暂停播放音频。
            reset()              将 MediaPlayer 对象重置到刚刚创建的状态。
            seekTo()             从指定的位置开始播放音频。
            stop()                     停止播放音频。调用这个方法后的 MediaPlayer 对象无法再播放音频。
            release()             释放掉与 MediaPlayer 对象相关的资源。
            isPlaying()             判断当前 MediaPlayer 是否正在播放音频。
            getDuration()           获取载入的音频文件的时长。

 现在给出一段代码:

public class MainActivity extends Activity implements View.OnClickListener {    private Button play;    private Button pause;    private Button stop;    /*        MediaPlayer class can be used to control playback        of audio/video files and streams.     */    private MediaPlayer mediaPlayer = new MediaPlayer();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取控件        play = (Button) findViewById(R.id.play);        pause = (Button) findViewById(R.id.pause);        stop = (Button) findViewById(R.id.stop);        //初始化mediaPlayer        initMediaPlayer();        //设置响应        play.setOnClickListener(this);        pause.setOnClickListener(this);        stop.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.play:                //如果当前视频没有播放 那就播放视频。                if(!mediaPlayer.isPlaying()) {                    mediaPlayer.start();                }                break;            case R.id.pause:                //如果当前视频正在播放,那就暂停                if(mediaPlayer.isPlaying()) {                    mediaPlayer.pause();                }                break;            case R.id.stop:                if(mediaPlayer.isPlaying()) {                    //停止播放                    mediaPlayer.reset();                    initMediaPlayer();                }                break;            default:                break;        }    }    @Override    protected void onDestroy() {        if(mediaPlayer != null){            mediaPlayer.release();        }        super.onDestroy();    }    private void initMediaPlayer() {        File file = new File(Environment.getExternalStorageDirectory(), "test.mp3");        try {            mediaPlayer.setDataSource(file.getPath()); // 指定音频文件的路径            mediaPlayer.prepare(); // 让MediaPlayer进入到准备状态            //Toast.makeText(MainActivity.this, "succeed", Toast.LENGTH_SHORT).show();        } catch (IOException e) {            e.printStackTrace();        }    }}

 

 

  先MediaPlayer.setDataSource设置音频的具体位置,然后调用mediaPlayer.prepare()方法,表明MediaPlayer已经准备好。然后可以调用MediaPlayer的start()、pause()、reset()分别开始音频、暂停音频、重置MediaPlayer到创建状态。

  当然要注意的是,我们读取的是SD卡上的数据,要设置

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 

 

播放视频

  播放视频可以使用VideoView类实现,这个类显示和控制都有。

  

                  方法名         功能描述
                setVideoPath()     设置要播放的视频文件的位置。
                start()         开始或继续播放视频。
                pause()         暂停播放视频。
                resume()         将视频重头开始播放。
                seekTo()          从指定的位置开始播放视频。
                isPlaying()       判断当前是否正在播放视频。
                getDuration()        获取载入的视频文件的时长。

 

VideoView使用方法和MediaPlayer类似。

 

安卓学习之音频、视频