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还是绰绰有余的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打不死的迪仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值