String path = "http:.........."; // 下载地址// 创建文件夹,在存储卡下String dirName = Environment.getExternalStorageDirectory() + "/" + mContext.getPackageName();File file = new File(dirName);// 文件夹不存在时创建if (!file.exists()) {file.mkdir();}// 下载后的文件名int i = path.lastIndexOf("/"); // 取的最后一个斜杠后的字符串为名String fileName = dirName + path.substring(i, path.length());File file1 = new File(fileName);if (file1.exists()) {// 如果已经存在, 就不下载了, 去播放startVideo(fileName);} else {new Thread(new Runnable() {@Overridepublic void run() {DOWNLOAD();}}).start();}
// 下载具体操作private void DOWNLOAD() {try {URL url = new URL(path);// 打开连接URLConnection conn = url.openConnection();// 打开输入流InputStream is = conn.getInputStream();// 创建字节流byte[] bs = new byte[1024];int len;OutputStream os = new FileOutputStream(fileName);// 写数据while ((len = is.read(bs)) != -1) {os.write(bs, 0, len);}// 完成后关闭流Log.e(TAG, "download-finish");os.close();is.close();//            }} catch (Exception e) {e.printStackTrace();Log.e(TAG, "e.getMessage() --- " + e.getMessage());}}
// 播放视频private void startVideo(String videoURI) {videoview.setVisibility(View.VISIBLE);videoview.setLayoutParams(new RelativeLayout.LayoutParams(UtilsTools.getCurScreenWidth(mContext), UtilsTools.getCurScreenWidth(mContext) / 3 * 4)); // 此行代码是设置视频的宽高比是3/4,不需要就注释掉即可// 设置播放加载路径//        videoview.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.aaa));videoview.setVideoURI(Uri.parse(videoURI));// 播放videoview.start();// 循环播放//        videoview.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {//            @Override//            public void onCompletion(MediaPlayer mediaPlayer) {//                videoview.start();//            }//        });}

Android中视频文件的下载和播放相关推荐

  1. iOS音视频实现边下载边播放

    iOS音视频实现边下载边播放 近段时间制作视频播放社区的功能,期间查找了不少资料,做过很多尝试,现在来整理一下其中遇到的一些坑.由于考虑到AVPlayer对视频有更高自由度的控制,而且能够使用它自定义 ...

  2. android 与后台实时视频,android选择视频文件上传到后台服务器

    本文实例为大家分享了android选择视频文件上传到后台服务器的具体代码,供大家参考,具体内容如下 选择本地视频文件 首先第一步打开打开相册选择视频文件: Intent intent = new In ...

  3. Android 中封装优雅的 MediaPlayer 音频播放器,支持多个播放器

    Android 中封装优雅的 MediaPlayer 音频播放器,支持多个播放器实例的示例: public class AudioPlayer implements MediaPlayer.OnPre ...

  4. android修改dll文件,Android中dll文件的修改

    Android中dll文件的修改,最近下载了一款非常不错的益智类游戏,一打开,顶部还有广告,最讨厌游戏中还带广告的,点又点不掉,又怕误点,真的看了都烦...作为程序员,就有种想要把它干掉的想法,作为玩 ...

  5. 修改Android中的文件权限

    在Android中有一个精简版的linux系统,因为是linux系统,那么有时候在写Android应用程序的时候会遇到权限问题.我们都知道在shell中可以通过chmod命令来修改权限,所以就希望通过 ...

  6. android 生成aar文件,Android 中.aar文件生成方法与用法

    https://i.cnblogs.com/EditPosts.aspx?opt=1 无论是用Eclipse还是用Android Studio做android开发,都会接触到jar包,全称应该是:Ja ...

  7. Android中Assets文件路径

    Android中Assets文件绝对路径是不存在的 一般Assets文件夹里放些网页文件html.css.js 在网页文件中引用assets里的文件可以使用file:///android_asset/ ...

  8. Android中R文件ID值

    Android中R文件ID值 文章目录 Android中R文件ID值 前言 知识回顾 在代码中访问资源 语法 R文件 Lib库的R文件 AAR中的R文件 依赖库R文件的生成 R文件的数量 后续疑问 官 ...

  9. android 读写文件 简书,Android 中的文件操作

    Android 文件操作 概述 Android 中的文件操作主要涉及到两个部分,一个是内部存储的读写,一个是外部存储的读写两者的主要区别如下表: 内部存储 外部存储 始终可用 它并非始终可用,因为用户 ...

最新文章

  1. 非极大值抑制_非极大值抑制(Non-Maximum Suppression)
  2. java1.6 linux_linux java1.6 安装
  3. C语言的编译器常见的有哪些?
  4. python定义变量并赋值_Python动态声明变量赋值代码实例
  5. 折纸机器人的步骤图解_折纸图解走路的人
  6. 矩阵置零—leetcode73
  7. java简单的死锁检测(转载线下代码)
  8. 两个时间相差距离多少小时 (精确到秒)
  9. Android启动initlogo.rle制作
  10. 数据结构---简单插入排序
  11. arm linux 时间获取,菜鸟自学ARM:linux下编程获取系统时间和设置时间
  12. int long long 的取值范围
  13. Activiti进阶(七)——排他网关(ExclusiveGateWay)
  14. sublime配置python-rpel_SublimeREPL配置Python3开发
  15. HTML与CSS各种代码与用法,几种关于html和css的使用方法
  16. Mysql集群拆分_MySQL 5.7跨集群拆分迁移
  17. Python中的*self,*self._args, **kwargs
  18. linux系统下find命令的使用
  19. Amigo---Android hotfix terminator
  20. 电子科大考研经验分享

热门文章

  1. 日语计算机客服客服常用敬语,日语常用敬语问候语
  2. 关于涉密信息系统集成资质证书到期应注意的事项
  3. 动手学深度学习第九节softmax回归中FashionMNIST数据集无法加载的解决方法
  4. TP4054或LTH7锂电充电芯片灯不灭解决处理方法和充电不转灯解决方式
  5. 基于单片机的数字电压表设计
  6. 基于vue+springboot,实现图片base64转码保存到数据库
  7. 火狐浏览器兼容鼠标滚轮事件
  8. USB端口的ESD防护电路设计
  9. java仿qq 界面_界面--仿qq登录界面
  10. 神雕侠侣手游服务器维护,《神雕侠侣》2018年11月1日更新维护新服开启公告