您的位置:首页 > 移动开发 > Android开发

android多媒体之播放音视频

2018-03-03 00:56 459 查看
播放音频

  在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还是绰绰有余的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: