You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中Expo MediaLibrary.getAssetsAsync传入album无法获取相册资源

修复方案

1. 显式指定查询媒体类型与分页参数

MediaLibrary.getAssetsAsync() 默认仅查询图片资源,未指定媒体类型时会自动过滤视频文件,同时需显式传入分页拉取数量参数避免结果被截断。
修复后的代码示例:

let album = await MediaLibrary.getAlbumAsync("GrabTube")
console.log(album )
let assets = await MediaLibrary.getAssetsAsync({
  album: album,
  mediaType: [MediaLibrary.MediaType.video], // 指定查询视频类型资源
  first: album.assetCount // 按相册实际资源数拉取,避免分页遗漏
})
console.log(assets)

2. 兼容相册参数传入格式

部分Expo SDK版本对album对象的解析存在兼容问题,可直接传入相册ID替代完整album对象:

let assets = await MediaLibrary.getAssetsAsync({
  album: album.id,
  mediaType: [MediaLibrary.MediaType.video],
  first: 100
})

3. 权限校验

  • 安卓13及以上版本需确认已申请READ_MEDIA_VIDEO权限,安卓13以下版本需申请READ_EXTERNAL_STORAGE权限
  • iOS端需确认用户授予了全部照片访问权限,而非仅授权访问选中的照片
  • 执行查询前可先调用MediaLibrary.requestPermissionsAsync() 确认权限状态为granted后再执行查询逻辑

内容的提问来源于stack exchange,提问作者Anas Ikhlas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:09:02