8.4 获取媒体文件信息
优质
小牛编辑
132浏览
2023-12-01
在8.1节中提到过,通过getMediaFileSystems
方法获取到的fileSystem
中的root
属性值就是Entry
对象,结合第7章的内容就可以对媒体库中的文件进行操作。
通过getMetadata
方法可以读取出媒体文件相关信息1:
chrome.mediaGalleries.getMetadata(mediaFile, {metadataType: 'all'}, function(metadata){
//do something with metadata
});
1 目前处于Beta分支。
其中mediaFile
为Blob
类型数据。metadataType
为获取信息的类型,如果不指定默认为all
,即全部信息,还可以指定为mimeTypeOnly
来只获取MIME
。
metadata
为一个包含媒体信息的对象,完整结构如下:
{
mimeType: MIME类型,
height: 视频或图片的高度,单位为像素,
width: 视频或图片的宽度,单位为像素,
xResolution: 照片的水平分辨率,用电视线表示,
yResolution: 照片的垂直分辨率,用电视线表示,
duration: 视频或音乐的长度,以秒为单位,
rotation: 视频或图片的旋转角度,以度为单位,
cameraMake: 图片中的相机制造商,
cameraModel: 相机模式,
exposureTimeSeconds: 曝光时间,
flashFired: 是否开启闪光灯,
fNumber: 光圈大小,
focalLengthMm: 焦距,单位为毫米,
isoEquivalent: 等效ISO,
album: 视频或音乐专辑,
artist: 艺术家,
comment: 评分,
copyright: 版权信息,
disc: 盘片编号,
genre: 流派,
language: 语言,
title: 标题,
track: 音轨数,
rawTags: [
{
type: 类型,如mp3、h264,
tags: 标签
}
]
}
最后值得说明的是,由于已经在Manifest中声明了媒体库的读取权限,而不必另外声明fileSystem
权限用于读取媒体文件。
由于遍历目录和读取、复制、删除文件与文章讲解的内容无关,读者可自行参考第7章内容实现相关功能。Media Manager实例的源码可以通过https://github.com/sneezry/chrome_extensions_and_apps_programming/tree/master/media_manager下载到。