话不多说,直接贴核心代码:

    /*** 获取手机中所有视频的信息*/private void getAllVideoInfos() {List<UploadMovieBean> sysVideoList = new ArrayList<>();new Thread(() -> {Uri mImageUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;String[] proj = { MediaStore.Video.Thumbnails._ID, MediaStore.Video.Thumbnails.DATA,MediaStore.Video.Media.DURATION,MediaStore.Video.Media.SIZE,MediaStore.Video.Media.DISPLAY_NAME,MediaStore.Video.Media.DATE_MODIFIED};Cursor mCursor = getContext().getContentResolver().query(mImageUri,proj,MediaStore.Video.Media.MIME_TYPE + "=?",new String[]{"video/mp4"},MediaStore.Video.Media.DATE_MODIFIED+" desc");if (mCursor!=null) {while (mCursor.moveToNext()) {// 获取视频的路径int videoId = mCursor.getInt(mCursor.getColumnIndex(MediaStore.Video.Media._ID));String path = mCursor.getString(mCursor.getColumnIndex(MediaStore.Video.Media.DATA));int duration = mCursor.getInt(mCursor.getColumnIndex(MediaStore.Video.Media.DURATION));long size = mCursor.getLong(mCursor.getColumnIndex(MediaStore.Video.Media.SIZE))/1024; //单位kbif (size < 0) {size = new File(path).length()/1024;}String displayName = mCursor.getString(mCursor.getColumnIndex(MediaStore.Video.Media.DISPLAY_NAME));MediaStore.Video.Thumbnails.getThumbnail(getContext().getContentResolver(), videoId, MediaStore.Video.Thumbnails.MICRO_KIND, null);String[] projection = { MediaStore.Video.Thumbnails._ID, MediaStore.Video.Thumbnails.DATA};Cursor cursor = getContext().getContentResolver().query(MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI, projection, MediaStore.Video.Thumbnails.VIDEO_ID + "=?", new String[]{String.valueOf(videoId)}, null);String thumbPath = "";while (cursor.moveToNext()) {thumbPath = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Thumbnails.DATA));}cursor.close();UploadMovieBean uploadMovieBean = new UploadMovieBean();uploadMovieBean.setCover(thumbPath);uploadMovieBean.setUrl(path);uploadMovieBean.setTitle(displayName);uploadMovieBean.setSeconds(duration);uploadMovieBean.setSize(size);sysVideoList.add(uploadMovieBean);}mCursor.close();}//更新界面runOnUiThread(() -> {uploadMovieBeans = sysVideoList;mSelectMovieAdapter.setNewInstance(uploadMovieBeans);});}).start();}

【大前端】android怎么获取本地视频及封面的正确姿势相关推荐

  1. 【Android 获取本地视频+视频剪裁+视频录制】

    效果图如下: 获取本地视频 关键代码: /*** 重要说明:* <p>* 疑问一:* 该方法,查到的 视频路径 和 视频的缩略图 是一样的,并且格式都是 .mp4 .视频的缩略图应该是 . ...

  2. 【Android开发】 获取本地视频封面

    获取本地视频封面 或许你遇到这样的场景,想做一个视频播放器,视频在播放之前展示一个封面图,想截取某一帧/第一帧作为封面图.要实现这个功能,只需要使用 Android 系统 api 提供的 MediaM ...

  3. 如何获取网络视频(或者说后台返回视频URL)第一帧图片以及获取本地视频的第一帧图片

    在项目开发的时候,有可能会有这样的一种需求:有一段视频需要展示给用户,在界面上先展示视频上的某一帧图片,用户点击的时候再去获取视频资源进行播放.这时,服务器会先给我们返回视频的url,这个时候就需要通 ...

  4. Android 10.0获取本地视频及其预览图

    打开本地视频选择器 private void openLocalVideo(){Intent intent = new Intent();intent.setAction(Intent.ACTION_ ...

  5. Android无法播放本地视频

    最近初学安卓,在Android Studio里面做播放本地视频功能时遇到了,路径正确却弹出了"无法播放此视频"的情况(网络视频可以正常播放). 解决办法: 由于安卓10更新了一些东 ...

  6. iOS获取本地视频列表数据

    iOS本地的视频存在于三个地方: iTunes中影片中导入的视频文件 iTunes中通过共享文件导入的视频文件,即应用沙盒 摄像头拍摄的视频文件,可以相册找到 这三处获取视频列表方式不同. iTune ...

  7. 如何获取别人视频的封面图,提取教程分享

    我们看视频的时候,第一眼看到的是什么?那当然是视频的封面了.所以当我们遇到喜欢的视频时候,那么有时候会不会特想要视频的封面图片呢?提取视频封面的方法很简单,接下来给大家分享一种十分简单的获取封面图的方 ...

  8. android 根据指定路径获取本地视频列表显示,点击缩略图调用系统播放器进行播放

    第一步,MainActivity.class类代码 如下: package com.learn.lister.systemvediorecord;import android.app.Activity ...

  9. android基于ffmpeg本地视频、在线视频、直播播放器 支持rtmp、rtsp、http等协议

    最近做了一个支持onvif标准的摄像头管理程序,主要就是在局域网中通过程序控制摄像头获取摄像头视频流分发给广域网中的客户端设备:这里面用了onvif协议相关知识和ffmpeg视频流处理的相关知识. o ...

最新文章

  1. (C++)1002 A+B for Polynomials
  2. Matrix 矩阵
  3. 十、延时之基本知识介绍及实验
  4. 轻芒阅读距离今日头条还差一个即刻
  5. java开发微信公众平台备忘
  6. 麒麟Linux关闭telnet,银河麒麟系统管理员使用手册(30页)-原创力文档
  7. 二分查找算法的C/C++实现
  8. 那些月入5000的人,凭什么比你更早买房买车?
  9. 淘宝装修基础版全屏店招
  10. talentcentral测评结果_人才测评
  11. 阿里巴巴常用的12个后端开发工具
  12. 电子信息工程跨保计算机、生物医学工程保研经验分享~
  13. eNSP实验记录(一):路由器与交换机
  14. 腾讯云--OOS对象存储服务--java程序封装
  15. SSH项目,failed to lazily initialize a collection of role
  16. Python销售订单分析。
  17. 祝我亲爱的天蝎GG生日快乐!+相识3周年小纪念【转载】
  18. 如何禁止input文本框输入
  19. 从系统托盘中删除Synaptics触摸板图标
  20. H.265网页播放器EasyPlayer获取视频流正常,但是播放出现黑屏是什么原因?

热门文章

  1. Joomla模板制作教程:通过Joomla!模板你能做什么
  2. Unity3D开发 巫师狩魔猎人感官功能(简陋版)
  3. foobar2000:如何将MP3文件从PC传输到手机
  4. Python调用腾讯API合成语音
  5. 调用wx.relaunch报错:fail can not invoke relaunch in background
  6. Dynamo For Revit: 铺地砖
  7. 网络知识-03 数据链路层-PPP
  8. ContextCapture系列教程(四):新建工程、添加照片、相机参数设置、选择坐标系统
  9. LDA 与 PLSA对比
  10. 利用ChatGPT 5分钟制作一份思维导图