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