android 11 kotlin显示视频预览

权限

读sd卡中的mp4文件的权限

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

代码

   fun showVideo() {// 比如显示sdcard对应app的data中的kongfu.mp4val video: String = getExternalFilesDir("")!!.getAbsolutePath() + "/kongfu.mp4"val file: File = File(video)if (!file.exists()) {Log.e(TAG, "file:${video} not exists")return}lifecycleScope.launch(Dispatchers.Main) {val firstFrame = getFirstFrameDrawable(video)if (firstFrame != null) {// iv_first_frame是一个ImageViewiv_first_frame.setVisibility(View.VISIBLE)iv_first_frame.setImageBitmap(firstFrame)}}}/*** 获取视频的第一帧,耗时的操作, 不建议直接在主线程上调用,这里放在协程中处理** @param url* @return*/private suspend fun getFirstFrameDrawable(url: String): Bitmap? {val mmr = MediaMetadataRetriever()Log.d(TAG, "video_url = $url")return try {mmr.setDataSource(url)mmr.frameAtTime} catch (e: Exception) {e.printStackTrace()null}}// 取视频中某个播放位置的图片,单位为毫秒private suspend fun getFrameDrawable(url: String, millisPosition: Long): Bitmap? {val mmr = MediaMetadataRetriever()return try {mmr.setDataSource(url)mmr.getFrameAtTime(millisPosition)} catch (e: Exception) {e.printStackTrace()null}}

可能出错点

如果这么调 mmr.setDataSource(url, HashMap())
会提示如下错误:
android java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFEA

作者:帅得不敢出门

android显示视频预览相关推荐

  1. Python - 如何在Tkinter窗口中显示视频预览

    from moviepy.editor import * from moviepy.video.fx.resize import resize import pygame pygame.display ...

  2. 教你如何关闭Win7视频预览节约资源

    前天我发现我的电脑打开E盘的文件夹,文件夹自动关闭,试了很多次都一样,开始以为中毒,查杀没有病毒,百度一问,才明白是因为我的E盘放了很多电影,尤其是AVI格式的.因为系统开启了显示视频预览.占用资源太 ...

  3. Android openGl开发详解(二)——通过SurfaceView,TextureView,GlSurfaceView显示相机预览(附Demo)

    最近公司在做自定义相机这一块,之前使用的是第三方,后来需求变更,第三方不支持添加动态贴纸,所以只能自己扩展.当然网上有很多例子,但是关于添加动态贴纸的例子几乎找不到,反正我是没找到(欲哭无泪).当然, ...

  4. android ffmpeg 仿剪映播放器 剪辑视频 预览条 快速精准抽帧

    android ffmpeg 仿剪映播放器 剪辑视频 预览条 快速精准抽帧 由于本人想学习音视频相关的东西,所以找了剪映作为借鉴,通过仿照剪映的功能学习音视频相关的东西,所以有了这个项目 暂时这个项目 ...

  5. android surface清空,Android:如何在surfaceDestroyed()之后重启视频预览?

    我通过以下方式创建了一个CapturePreview类和CameraManager类: CapturePreview: public class CaptureView extends Surface ...

  6. android surfaceview camera,android – 如何在SurfaceView上显示相机预览?

    要使用Camera2 API从相机显示预览,您应该执行以下步骤: >获得使用相机设备的权限 >使用CameraManager打开与相机的连接 准备表面预览 >使用打开的相机设备和所需 ...

  7. android预览界面显示不全,Android SurfaceView Camera 预览显示不全(画面拉伸)

    释放双眼,带上耳机,听听看~! 项目当中遇到调整摄像头位置需要全屏显示摄像头预览界面,过程中发现预览界面存在无法显示全,画面被拉伸的问题.surfaceview的宽高比可能与camera设置的宽高比不 ...

  8. Android P 开发者预览版

    Android P 开发者预览版首发! 在上周的世界移动通信大会 (Mobile World Congress) 上,我们看到由开发者.设备厂商以及芯片合作伙伴组成的 Android 生态系统不断为全 ...

  9. Android P 开发者预览版首发!

    在上周的世界移动通信大会 (Mobile World Congress) 上,我们看到由开发者.设备厂商以及芯片合作伙伴组成的 Android 生态系统不断为全球用户创造美妙体验. 今天,我们要向各位 ...

最新文章

  1. PCL的PNG文件和计算点云重心
  2. 融合与Web应用 2011年安全领域趋势展望
  3. java中如何判断aabb_java判断改错题
  4. mysql spring隔离级别_MySQL事务与Spring隔离级别实现
  5. 从外网 SSH 进局域网,反向代理+正向代理解决方案
  6. 蓝桥杯 PREV-32 历届试题 分糖果
  7. 系统分析师考试经验分享
  8. 你不知道的华为交换机22个实用技巧
  9. 勒索病毒GandCrab5.2解密工具
  10. java生成随机数的代码_java生成随机数的代码
  11. 通过ip查看主机名和端口占用情况
  12. 用户画像标签数据开发之标签权重计算
  13. 计算机毕业设计之java+ssm疫情防控志愿者管理系统
  14. 【业务办理】广州市户口市内迁移流程
  15. C:L1-061 新胖子公式 (10分)
  16. 手机无线设计的八个原则
  17. Vue.js 写一个echarts的水滴图
  18. Redis - 几款可视化工具
  19. win7防火墙入站规则
  20. 用python解决选择困难症

热门文章

  1. 从身份证号里可以解析出出生地,年月日,性别及年龄
  2. 现货黄金有什么需要注意的?
  3. windows 8 修改窗口颜色为淡绿色
  4. 申请计算机语言学留学要求,布兰迪斯大学计算机语言学文学硕士研究生申请要求及申请材料要求清单...
  5. 《精通以太坊》预言机
  6. oracle量子,中国科学院量子信息重点实验室
  7. 努力是为了让自己不平庸
  8. 中国互联网老总的经典妙语语录
  9. 各大电商平台API、淘宝API、1688API、拼多多API抓取商品详情数据接口
  10. 【unity 保卫星城】--- 开发笔记03(飞机类第一版)