android多媒体之播放音视频

播放音频
  在Android中播放音频文件一般都是使用MediaPlayer类来实现,它对多种格式的音频文件提供了非常全面的控制方法。常用的控制方法有:setDataSource(), prepare(), start(), pause(), reset()(将MediaPlayer对象重置到刚刚创建的状态), seekTo(), stop()(停止播放音频,调用这个方法后的MediaPlayer对象无法再播放音频), release(), isPlaying()和getDuration()。
  需要注意:在活动的onCreate()方法中要进行运行时权限处理,动态申请WRITE_EXTERNAL_STORAGE权限,这是因为为了播放SD卡里放置的一个音频文件,必须拥有访问SD卡的权限才行,如何操作可以参考http://blog.csdn.net/hanmindi/article/details/79407453
  
初始化:

private void initMediaPlayer(){
    try{
        File file = new File(Environment.getExternalStorageDirectory(), "music.mp3");
        mediaPlayer.setDataSource(file.getPath());
        mediaPlayer.prepare();
    }catch(Exception e){
        e.printStackTrace();
    }
}

开始播放:

if(!mediaPlayer.isPlaying()){
    mediaPlayer.start();
}

暂停播放:

if(mediaPlayer.isPlaying()){
    mediaPlayer.pause();
}

停止播放 (重点):

if(mediaPlayer.isPlaying()){
    mediaPlayer.reset();
    initMediaPlayer();
}

销毁播放器 (重点):

@Override
protected void onDestroy(){
    super.onDestroy();
    if(mediaPlayer != null){
        mediaPlayer.stop();
        mediaPlayer.release();
    }
}

播放视频
  播放视频文件主要使用VideoView类来实现,其实并不比播放音频文件复杂。VideoView的使用方法跟MediaPlayer比较相似,可以很容易的实现一个简易的视频播放器。常用的方法有:setVideoPath(), start(), pause(), resume()(将视频重头开始播放), seekTo(), isPlaying()和getDuration()。需要注意的是,播放视频的运行时权限处理跟播放音频一致。
初始化:

private void initVideoPath(){
    File file = new File(Environment.getExternalStorageDirectory(), "music.mp4");
    videoView.setVideoPath(file.getPath());
}

开始播放:

if(!videoView.isPlaying()){
    videoView.start();
}

暂停播放:

if(videoView.isPlaying()){
    videoView.pause();
}

重新播放:

if(videoView.isPlaying()){
    videoView.resume();
}

销毁播放器 (重点):

@Override
protected void onDestroy(){
    super.onDestroy();
    if(videoView != null){
        videoView.suspend(); //将videoView所占用的资源释放掉
    }
}

  另外需要注意,VideoView并不是一个万能的视频播放器工具类,它在视频格式的支持以及播放效率方面都存在着较大的不足,所以,如果想要仅仅使用VideoView就编写出一个功能非常强大的视频播放器是不现实的,但是如果只是用于播放一些游戏的片头动画,或者某个应用的视频宣传,使用VideoView还是绰绰有余的。

你可能感兴趣的:(简记)