android实现视频播放器

上午我们用mediaplayer实例了音乐播放器,现在我们在用mediaplayer实现视频播放,同样的也有两种实现方式:

  • SurfaceView
  • VideoView

先来看两张图片


其实答大体操作还是一样的,只是多了两部:
1、xml布局,使用了SurfaceView的控件
2、代码中将步骤到的画面surfaceView放入到了mediaplayer中

下面我就把详细代码贴出来:
首先是布局的:

      <SurfaceView          android:layout_width="match_parent"          android:layout_height="300dp"          android:id="@+id/sf_view"/>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content">        <SeekBar            android:layout_width="0dp"            android:layout_weight="1"            android:layout_height="wrap_content"            android:id="@+id/sb_main_bar"            />        <ImageButton            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@android:drawable/ic_media_play"            android:onClick="isPlayOrPause"            />    LinearLayout>

最后贴出关键的java代码,其他都和前面音乐器的步骤一样,不同明白的的同行者可以先去看看前篇:

   final ImageButton imageButton=(ImageButton) view;//视图的button        if (mediaPlayer==null){            mediaPlayer=new MediaPlayer();            mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);            try {                //播放内存卡中的图片                  mediaPlayer.setDataSource(this,Uri.parse("file://mnt/sdcard/Movies/advideo.mp4"));                  mediaPlayer.prepare();            } catch (IOException e) {                e.printStackTrace();            }                   //将捕捉到的画面放到surfaceview中                   mediaPlayer.setDisplay(surfaceView.getHolder());                    mediaPlayer.start();                    imageButton.setImageResource(android.R.drawable.ic_media_pause);                    //获取音乐总时长                    int duration= mediaPlayer.getDuration();                    //设置音乐最大值                    sb_main_bar.setMax(duration);                   new mythread().start();        }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);        }

这个的变化就只是在准备播放前加了一句捕捉画面的代码,就可以啦。

第二种vedioVew用起来相对于简单,布局文件我就不贴了,即是一个VideoView的控件。java代码也是很简单的,

   videoView = (VideoView) findViewById(R.id.vv_vedio);        //设置来源        videoView.setVideoPath("file://mnt/sdcard/Movies/advideo.mp4");        //实例媒体控制器        MediaController mediaController=new MediaController(this);        mediaController.setMediaPlayer(videoView);        videoView.setMediaController(mediaController);    }

视频播放挺简单的,就这样就完了。

更多相关文章

  1. 为什么我要改用Kotlin
  2. Android(安卓)ListView基础篇
  3. 使用Jquery Mobile设计Android通讯录
  4. Android(安卓)Fragment的介绍与使用(案例Demo)
  5. Android简单视频播放器之VideoView(一)
  6. 折磨死我的conversion to dalvik format failed with error 1 竟
  7. android真实项目教程(四)——MY APP MY STYLE_by_CJJ
  8. Android中LocationManager的简单使用01
  9. Android更改Activity样式和隐藏标题

随机推荐

  1. 【Android】使用handler发送消息02
  2. 关于 Appium Android 真机测试
  3. Android 自定义view 和 onMeasure方法介
  4. Android下的Touch事件分发
  5. android获取assert资源文件
  6. Android判断touch事件点是否在view范围内
  7. Android SqlLite 学习
  8. Android 8.0 SystemUI(三)——StatusBar
  9. 图片的放大缩小
  10. Android延时执行调用的几种方法