说明
使用 chrome.mediaGalleries API 访问用户本地磁盘中的媒体文件(音频、图片、视频)(需征得用户同意)。
权限
mediaGalleries类型
AddGalleryWatchResult
属性
- 
    galleryId
字符串
 - 
    成功
布尔值
 
GalleryChangeDetails
属性
- 
    galleryId
字符串
标识修改后的图库。
 - 
    
更改事件的类型。
 
GalleryChangeType
枚举
“contents_changed” 
 图库的内容已更改。
“watch_dropped” 
 手表已因设备分离、图库权限被移除或任何其他原因而掉落。
GetMediaFileSystemsInteractivity
枚举
“否” 
 不以互动方式执行操作。
“yes” 
 要求用户管理允许的媒体库。
“if_needed” 
 仅当返回集为空时,才要求用户管理允许的图库。
GetMetadataType
枚举
“all” 
 检索 MIME 类型、元数据标记和附加的图片。
“mimeTypeAndTags” 
 仅检索 MIME 类型和元数据标记。
“mimeTypeOnly” 
 仅检索 MIME 类型。
MediaFileSystemMetadata
属性
- 
    deviceId
字符串(选填)
如果媒体库位于可移除设备上,则为该设备在联网时的唯一 ID。
 - 
    galleryId
字符串
媒体库的唯一持久性 ID。
 - 
    isAvailable
布尔值
如果设备目前可用,则为 true。
 - 
    isMediaDevice
布尔值
如果检测到媒体库所在的设备是媒体设备(即 PTP 或 MTP 设备),或者存在 DCIM 目录,则为 True。
 - 
    isRemovable
布尔值
如果媒体库位于可移除设备上,则为 true。
 - 
    name
字符串
文件系统的名称。
 
MediaFileSystemsDetails
属性
- 
    
在返回允许的媒体库之前,是否提示用户授予对其他媒体库的权限。默认值为静音。如果传递的值为“yes”,或者应用未被授予对任何媒体库的访问权限,且传递的值为“if_needed”,则系统会显示媒体库配置对话框。
 
MediaMetadata
属性
- 
    album
字符串(选填)
针对音频和视频定义。
 - 
    艺术家
字符串(选填)
 - 
    attachedImages
Blob[]
嵌入在媒体文件元数据中的图片。此设置最常用于专辑封面或视频缩略图。
 - 
    条评论
字符串(选填)
 - 
    版权
字符串(选填)
 - 
    disc
number 可选
 - 
    时长
number 可选
针对音频和视频定义。以秒为单位。
 - 
    流派
字符串(选填)
 - 
    高度
number 可选
为视频定义。以像素为单位。
 - 
    language
字符串(选填)
 - 
    mimeType
字符串
浏览器嗅探到的 MIME 类型。
 - 
    rawTags
媒体文件中的所有元数据。对于包含多个视频流的格式,视频流顺序将保持不变。容器元数据是第一个元素。
 - 
    旋转
number 可选
为视频定义。以度为单位。
 - 
    title
字符串(选填)
 - 
    曲目
number 可选
 - 
    width
number 可选
 
MediaMetadataOptions
属性
- 
    metadataType
指定要检索的元数据子集。如果省略此选项,则默认为“all”。
 
StreamInfo
属性
- 
    标签
对象
用于流的标记的未过滤字符串->字符串字典。
 - 
    类型
字符串
描述了流的容器或编解码器格式,例如“mp3”“h264”。
 
方法
addGalleryWatch()
chrome.mediaGalleries.addGalleryWatch(
galleryId: string,
callback?: function,
): Promise<AddGalleryWatchResult>
为具有指定图库 ID 的图库添加了图库监听器。然后,系统会使用成功或失败结果触发指定的回调。
参数
- 
    galleryId
字符串
 - 
    callback
函数 可选
callback参数如下所示:(result: AddGalleryWatchResult) => void
 
返回
- 
            
Promise<AddGalleryWatchResult>
Chrome 116 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
 
addUserSelectedFolder()
chrome.mediaGalleries.addUserSelectedFolder(
callback: function,
): void
向用户显示目录选择器,并将所选目录添加为图库。如果用户取消选择器,selectedFileSystemName 将为空。需要用户手势才能显示对话框。如果没有用户手势,回调将像用户取消一样运行。
参数
- 
    callback
函数
callback参数如下所示:(mediaFileSystems: DOMFileSystem[], selectedFileSystemName: string) => void
- 
    mediaFileSystems
DOMFileSystem[]
 - 
    selectedFileSystemName
字符串
 
 - 
    
 
getMediaFileSystemMetadata()
chrome.mediaGalleries.getMediaFileSystemMetadata(
mediaFileSystem: DOMFileSystem,
): MediaFileSystemMetadata | undefined
获取有关特定媒体文件系统的元数据。
参数
- 
    mediaFileSystem
DOMFileSystem
 
返回
- 
            
MediaFileSystemMetadata | undefined
 
getMediaFileSystems()
chrome.mediaGalleries.getMediaFileSystems(
details?: MediaFileSystemsDetails,
callback?: function,
): Promise<DOMFileSystem[]>
获取此用户代理中配置的媒体库。如果未配置或没有可用的,回调将收到一个空数组。
参数
- 
    详细信息
 - 
    callback
函数 可选
callback参数如下所示:(mediaFileSystems: DOMFileSystem[]) => void
- 
    mediaFileSystems
DOMFileSystem[]
 
 - 
    
 
返回
- 
            
Promise<DOMFileSystem[]>
Chrome 116 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
 
getMetadata()
chrome.mediaGalleries.getMetadata(
mediaFile: Blob,
options?: MediaMetadataOptions,
callback?: function,
): Promise<MediaMetadata>
获取媒体文件的媒体专用元数据。这应该适用于媒体库中的文件以及其他 DOM 文件系统。
参数
- 
    mediaFile
Blob
 - 
    选项
 - 
    callback
函数 可选
callback参数如下所示:(metadata: MediaMetadata) => void
- 
    元数据
 
 - 
    
 
返回
- 
            
Promise<MediaMetadata>
Chrome 116 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
 
removeGalleryWatch()
chrome.mediaGalleries.removeGalleryWatch(
galleryId: string,
): void
移除指定图库 ID 的图库的图库观看。
参数
- 
    galleryId
字符串
 
事件
onGalleryChanged
chrome.mediaGalleries.onGalleryChanged.addListener(
callback: function,
)
在媒体库发生更改或库监听被舍弃时触发。
参数
- 
    callback
函数
callback参数如下所示:(details: GalleryChangeDetails) => void
- 
    详细信息
 
 -