Android开发中利用VideoView实现一个多媒体视频播放器

本篇文章给大家分享的是有关Android开发中利用VideoView实现一个多媒体视频播放器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都网站设计、武胜网络推广、小程序设计、武胜网络营销、武胜企业策划、武胜品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供武胜建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

1)、SurfaceView

在布局文件中

<?xml version="1.0" encoding="utf-8"?>



 



 
  

  
 

在Activity里面和播放内存卡上音乐的代码差不多,只是视频多了个显示内容,关键代码就是这三条

//播放内存上的视频
mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/Movies/sister.mp4"));

//准备(内存卡)
mediaPlayer.prepare();

//将媒体播放器捕捉的画面展示在SurfaceView 上
mediaPlayer.setDisplay(sv_media_surface.getHolder());

但是没看前面博客的筒子可能会觉得看不懂,所以还是把完整的代码粘贴出来

public class MediaPlayActivity extends AppCompatActivity {
 private SeekBar seekBar;
 private MediaPlayer mediaPlayer;
 private SurfaceView sv_media_surface;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_media_play);
  seekBar = (SeekBar) findViewById(R.id.seekBar);
  sv_media_surface = (SurfaceView) findViewById(R.id.sv_media_surface);

  seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
   @Override
   public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

   }

   @Override
   public void onStartTrackingTouch(SeekBar seekBar) {

   }

   @Override
   public void onStopTrackingTouch(SeekBar seekBar) {
    //获取拖动结束后的位置
    int progress=seekBar.getProgress();
    //跳转到某个位置播放
    mediaPlayer.seekTo(progress);
   }
  });
 }

 public void isPlayOrPause(View view){
  final ImageButton imageButton= (ImageButton) view;

  if(mediaPlayer==null){//代表第一次播放音乐

   //播放内存卡内的音频
   mediaPlayer=new MediaPlayer();
   //设置类型
   mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
   //设置音源
   try {
    //播放内存上的视频
    mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/Movies/sister.mp4"));
    //准备(内存卡)
    mediaPlayer.prepare();

    //将媒体播放器捕捉的画面展示在SurfaceView 上
    mediaPlayer.setDisplay(sv_media_surface.getHolder());

    //必须在播放前加载音频文件(异步准备)
//    mediaPlayer.prepareAsync();

   } catch (IOException e) {
    e.printStackTrace();
   }

   mediaPlayer.start();
   //把图标改成暂停的图标(这里的暂停图标就是播放时的状态)
   imageButton.setImageResource(android.R.drawable.ic_media_pause);

   //获取音乐的总时长
   int duration=mediaPlayer.getDuration();
   //设置进度条的最大值为音乐的总时长
   seekBar.setMax(duration);

   new MyThread();
  }else if(mediaPlayer.isPlaying()){//正在播放音乐
   mediaPlayer.pause();
   //把图标改成播放的图标(暂停状态)
   imageButton.setImageResource(android.R.drawable.ic_media_play);
  }else{
   mediaPlayer.start();
   imageButton.setImageResource(android.R.drawable.ic_media_pause);
  }

 }

 class MyThread extends Thread{
  @Override
  public void run() {
   super.run();
   while(seekBar.getProgress()

Android开发中利用VideoView实现一个多媒体视频播放器

2)、VideoView,如果在项目中,仅仅只是播放视频的话,这种方式会比较简单,但是如果是要做视频播放器的话,还是使用第一种方法

布局文件

 

Activity

public class VedioActivity extends AppCompatActivity {

 private VideoView vv_main_vedio;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_vedio);
  vv_main_vedio = (VideoView) findViewById(R.id.vv_main_vedio);

  //给videoView设置播放来源
  vv_main_vedio.setVideoPath("file://mnt/sdcard/Movies/sister.mp4");

  //实例化媒体控制器
  MediaController mediaController=new MediaController(this);

  //给activity_vedio设置控制器
  vv_main_vedio.setMediaController(mediaController);

  mediaController.setMediaPlayer(vv_main_vedio);

 }
}

Android开发中利用VideoView实现一个多媒体视频播放器

VideoView通过与MediaController类结合使用,开发者可以不用自己控制播放与暂停。

以上就是Android开发中利用VideoView实现一个多媒体视频播放器,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


新闻标题:Android开发中利用VideoView实现一个多媒体视频播放器
网页路径:http://myzitong.com/article/jojjgo.html