zoukankan      html  css  js  c++  java
  • android中VideoView播放sd卡上面的视频

    (1)videoView组件只支持MP4和3gp格式的视屏播放,如果想播放其它视屏格式的文件,还得开发能够播放的视屏播放器

    (2)videoView组件功能比较单一,如果想开发功能丰富的播放器,还得重写VideoView组件

    (3)videoView的基本用法,首先在布局文件里面添加videoView组件,具体的布局依据自己的需求,由于我这里要用到全屏,所以我重写了videoView组件

    package com.wxyz.dengchaoqun.testswf;
    
    import android.content.Context;
    import android.util.AttributeSet;
    import android.view.WindowManager;
    import android.widget.VideoView;
    
    /**
     * Created by 邓超群 on 2017/2/4.
     */
    
    public class FullScreenVideoView extends VideoView {
        public FullScreenVideoView(Context context) {
            super(context);
        }
    
        public FullScreenVideoView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        public FullScreenVideoView(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
    
        }
    
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
            int width = wm.getDefaultDisplay().getWidth();
            int height = wm.getDefaultDisplay().getHeight();
            setMeasuredDimension(width, height);
        }
    }
    

    然后再需要调用的Activity中去使用该组件,用法如下

     videoView=(VideoView)findViewById(R.id.videoView);
            File file=new File("/sdcard/aaa.mp4");
            MediaController mc=new MediaController(MainActivity.this);
            if(file.exists()){
                videoView.setVideoPath(file.getAbsolutePath());
                videoView.setMediaController(mc);
                videoView.requestFocus();
                try {
                    videoView.start();
                }catch (Exception e){
                    e.printStackTrace();
                }
                videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                    @Override
                    public void onCompletion(MediaPlayer mediaPlayer) {
                        Toast.makeText(MainActivity.this,"视频播放完毕",Toast.LENGTH_SHORT).show();
                    }
                });
            }else{
                Toast.makeText(MainActivity.this,"要播放的视屏文件不存在",Toast.LENGTH_SHORT).show();
            }
    

     (4)要访问sd上的文件是需要权限的,在配置文件中添加权限

    <!--访问sd卡权限-->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    

      

    以上就是VideoView组件的基础用法,有兴趣可以更加深入的研究

  • 相关阅读:
    通过 AWS CLI 操作 AWS S3
    AWS S3文件存储服务器搭建(新)
    Vertx 接入MongoDB (九)
    Vertx 接入Redis (八)
    Vertx Mysql数据库优化 (七)
    Vertx 接入Mysql数据库 (六)
    Vertx 实现webapi实战项目(五)
    Vertx 实现webapi实战项目(四)
    Vertx 实现webapi实战项目(三)
    正则表达式:元字符(基本可用来匹配的字符)
  • 原文地址:https://www.cnblogs.com/deng-c-q/p/6366117.html
Copyright © 2011-2022 走看看