chooseVideo传视频无法取到缩略图

微信小程序中 chooseVideo 和 chooseMedia 的区别

两者均为微信小程序提供的媒体选择接口,但功能和使用场景存在差异:

chooseVideo

专用于选择视频文件,支持从相册或相机拍摄获取视频。返回结果包含视频临时路径、时长、大小等信息,但不会自动生成缩略图。需通过 VideoContext 或 wx.createMediaContainer 处理视频帧截图。

chooseMedia

为多类型媒体选择接口(图片+视频),支持同时选择或拍摄多种媒体文件。返回结果中,视频文件会默认生成首帧缩略图(thumbTempFilePath),适合需要预览的场景。


解决无缩略图问题的方法

方法1:使用 chooseMedia 替代

javascript 复制代码
wx.chooseMedia({
  count: 1,
  mediaType: ['video'],
  success(res) {
    console.log(res.tempFiles[0].thumbTempFilePath) // 自动生成的缩略图路径
  }
})

方法2:手动生成缩略图(chooseVideo场景)

javascript 复制代码
wx.chooseVideo({
  sourceType: ['album', 'camera'],
  success(res) {
    const videoCtx = wx.createVideoContext('videoPlayer');
    videoCtx.seek(0).then(() => {
      setTimeout(() => {
        wx.canvasToTempFilePath({
          x: 0,
          y: 0,
          width: 300,
          height: 200,
          destWidth: 300,
          destHeight: 200,
          canvasId: 'snapshotCanvas',
          success(res) {
            console.log(res.tempFilePath) // 自定义缩略图
          }
        })
      }, 500)
    })
  }
})

关键差异总结

特性 chooseVideo chooseMedia
媒体类型 仅视频 图片+视频混合
缩略图生成 不支持 自动生成首帧缩略图
多选支持 否 是
返回数据结构 视频专属字段 统一媒体文件结构

建议根据实际需求选择接口:若需快速获取视频缩略图,优先使用 chooseMedia;若需要更专业的视频控制(如精确截帧),则选择 chooseVideo 配合手动处理。

相关推荐
计算机毕设定制辅导-无忧学长15 小时前
《基于微信小程序的居家医疗陪护预约系统设计与实现》
java·spring boot·微信小程序·uniapp·居家医疗陪护预约系统
大数据技术派2 天前
我用AI写代码,做了3个小玩意儿
后端·微信小程序
律宏阔3 天前
Taro 4 项目从 npm 迁移到 pnpm 踩坑实录
前端·微信小程序·taro
多客:duokelijie4 天前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
计算机毕设定制辅导-无忧学长5 天前
《基于微信小程序健康习惯激励系统设计与实现》
java·spring boot·mysql·微信小程序·uniapp·健康习惯激励系统
拖孩6 天前
流量主门槛从 500 降到 100,我的小程序上线 18 小时够到了线
前端·后端·微信小程序
云-缩影6 天前
做微信小程序,自建服务器还是用云托管:技术选型对比
服务器·微信小程序·小程序
极限挑战哥7 天前
共享电单车联营平台分账架构实践:二清合规与自动分账零人工方案
java·大数据·人工智能·微信小程序·架构·微信公众平台
云-缩影7 天前
拆解微信小程序后端架构:ECS、RDS、SSL 和 VPC 怎么配合
微信小程序·架构·ssl
拖孩7 天前
AI 帮我写的小程序上线 44 天:36 个人进了收银台,8 个人付钱
前端·后端·微信小程序