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分支。

其中mediaFileBlob类型数据。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下载到。