当前位置: 首页 > news >正文

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组件的基础用法,有兴趣可以更加深入的研究

 

转载于:https://www.cnblogs.com/deng-c-q/p/6366117.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • flex小数点四舍五入
  • mysql多表查询
  • 将java工程变成exe执行文件
  • github的pull request是指什么意思
  • jsp页面跳转三种方式的比较
  • tomcat里设置session过期时间
  • java免费发短信
  • boost的编译和安装
  • flex拖拽实例
  • flex获得html容器传递的url参数值
  • PHP去除重复的数组数据
  • java实现对url解析
  • build-essential的作用
  • Java实现在图片上添加水印图片和水印文字
  • POJ2406【KMP-next数组】
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • ComponentOne 2017 V2版本正式发布
  • CSS魔法堂:Absolute Positioning就这个样
  • Javascript弹出层-初探
  • javascript面向对象之创建对象
  • Just for fun——迅速写完快速排序
  • 关于Flux,Vuex,Redux的思考
  • 观察者模式实现非直接耦合
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 设计模式(12)迭代器模式(讲解+应用)
  • 深度解析利用ES6进行Promise封装总结
  • 手写一个CommonJS打包工具(一)
  • 与 ConTeXt MkIV 官方文档的接驳
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #70结构体案例1(导师,学生,成绩)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #知识分享#笔记#学习方法
  • (day 12)JavaScript学习笔记(数组3)
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (一)kafka实战——kafka源码编译启动
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)JAVA中的堆栈
  • (转载)hibernate缓存
  • .aanva
  • .net core 管理用户机密
  • .Net Core 生成管理员权限的应用程序
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET Reactor简单使用教程
  • .Net 代码性能 - (1)
  • .net 获取某一天 在当月是 第几周 函数
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)