更新记录

1.0.0(2026-01-10)

快捷获取手机媒体文件包括视频,图片,支持分页,自动缓存,支持返回缩略图


平台兼容性

uni-app(3.91)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - 5.0 - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

uni-app x(3.91)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - 5.0 - - -

获取手机媒体文件,支持分页,自动缓存,支持返回缩略图

  • 支持单独搜索图片,视频或者一并查询
  • 自动生成缩略图并缓存在应用下目录,保存的目录为应用缓存目录/cache_thumbnails;缩略图仅生成一份,后续访问同一份文件只会返回已经生成的缩略图
  • 响应包含文件名称、创建时间、大小、文件路径,缩略图路径,视频时长

uniapp使用示例

<script lang="ts" setup>
import { ref } from 'vue'
import { getMedias, clearThumbnailCache } from "@/uni_modules/mrctx-media-plugin"

const mediaList = ref([])
const test1 = async () =>{
    const page = 1
    const pageSize = 10
    const type = 'all'
    // console.log(test())
    getMedias({
        page, //当前页,必须为number类型,必填
        pageSize, // 页大小,必须为number类型,必填
        type,   // 查询的文件类型,类型有'image' | 'video' | 'all'中的一个,如果传all,将根据pageSize的一半来分别查询视频和图片,最后降序排序返回
        success: (res) =>{
            console.log('调用成功=>', res)
            // 响应示例
            //{
            //"page": 1, 当前页码
            //"pageSize": 10, 页大小
            //"type": "all", 查询的类型
            //"data": [
                //{
                    //"id": 1000024067, 文件id
                    //"name": "V20251227-201826.mp4", 文件名称
                    //"thumbnail": 缩略图路径"/storage/emulated/0/Android/data/io.dcloud.HBuilder/cache/cache_thumbnails/media_plugin_V20251227-201826_-1539686654_1768026021585.jpg",
                    //"size": 1290358663, 文件大小 单位 KB
                    //"uri": "/storage/emulated/0/DCIM/Video/V20251227-201826.mp4",
                    //"duration": 228.987, 视频时长 单位:秒
                    //"type": "video",  文件类型
                    //"date": 1766838135000  创建时间
                //},
            //]
}
            mediaList.value = res.data
        },
        fail: (err) =>{
            console.log('调用失败=>', err)
            // 具体异常信息请看下方异常信息章节
        },
        complete: (res) =>{
            console.log("函数调用完成=>", res)
        }
    })
}

const test2 = async () =>{
    const res = await clearThumbnailCache()
    uni.showModal({
        title: '提示',
        content: JSON.stringify(res)
    })
}

</script>

错误信息

  [1001, 'The page parameter needs to be of type number'],
  [1002, 'The pageSzie parameter needs to be of type number'],
  [1003, "The type parameter should be one of 'image', 'video', or 'all' and must be a string"],
  [1011, '没有相册读取权限']
  // 插件会判断有没有该权限,使用分区存储,不再需要外部存储权限
  // 但继续检查 MANAGE_EXTERNAL_STORAGE权限
  // 但经过测试,检查该权限返回false时仍可以正常将缩略图缓存在缓存目录
  // 其他版本的系统仍正常判断
  [1012, '没有文件读取权限']
  [1090, error] // 内部函数执行错误,会在stackTrace返回堆栈信息

异常信息

{
    "errSubject": "mrctx-media-plugin",
    "stackTrace": [],
    "message": "",
    "errMsg": "没有相册读取权限",
    "suppressedExceptions": [],
    "name": "Error",
    "errCode": 1011
}

支持

后续持续更新,将支持IOS,鸿蒙等系统!

将更新更多功能~

隐私、权限声明

1. 本插件需要申请的系统权限列表:

文件读写权限: READ_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE 相册读取权限: READ_MEDIA_IMAGES --Android 13+ READ_MEDIA_VIDEO --Android 13+ READ_MEDIA_AUDIO --Android 13+ READ_EXTERNAL_STORAGE --Android 10-12 READ_EXTERNAL_STORAGE --Android 9以下

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。