视频播放控件SurfaceView与VideoView

既然是播放一段视频,那么不可避免的要涉及到一些开始、暂停、停止等操作,
VideoView也为开发人员提供了对应的方法,这里简单介绍一些常用的:
//设置数据源
mediaPlayer.setDataSource(context, Uri.parse(uri) );
 //准备
mediaPlayer.prepareAsync();
//绑定surfaceview
 mediaPlayer.setDisplay(surfaceHolder);
 --------------------------------------------------------
 
int getCurrentPosition():获取当前播放的位置。
int getDuration():获取当前播放视频的总长度。
isPlaying():当前VideoView是否在播放视频。
void pause():暂停
void seekTo(int msec):从第几毫秒开始播放。
void resume():重新播放。
void setVideoPath(String path):以文件路径的方式设置VideoView播放的视频源。
void setVideoURI(Uri uri):以Uri的方式设置VideoView播放的视频源,可以是网络Uri或本地Uri。
void start():开始播放。
void stopPlayback():停止播放。
setMediaController(MediaController controller):设置MediaController控制器。
setOnCompletionListener(MediaPlayer.onCompletionListener l):监听播放完成的事件。
setOnErrorListener(MediaPlayer.OnErrorListener l):监听播放发生错误时候的事件。
setOnPreparedListener(MediaPlayer.OnPreparedListener l)::监听视频装载完成的事件。
  上面的一些方法通过方法名就可以了解用途。和MediaPlayer配合SurfaceView播放视频不同
,VideoView播放之前无需编码装载视频,它会在start()开始播放的时候自动装载视频。
并且VideoView在使用完之后,无需编码回收资源。
使用VideoView做播放器控件的时候
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //给videoView填充数据
        //获得videoView对象
        videoViewTest = (VideoView) findViewById(R.id.vv_test);
        //填充网络数控
        videoViewTest.setVideoPath(url); //-参数是视频的网址
        //设置媒体控制器
        videoViewTest.setMediaController(new MediaController(this));
        videoViewTest.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                mp.start();
            }
        });
    }
    protected void onDestroy() {
        if(videoViewTest != null){
            //释放资源---在super之前调用的原因防止退出报错
            videoViewTest.stopPlayback();
            videoViewTest = null;
        }
        super.onDestroy();
    }
-----=================================================================================
protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedI
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值