使用 chrome.mediaGalleries API 获取用户画廊的名称
Using chrome.mediaGalleries API to get the names of the user's galleries
我正在尝试使用 chrome.getMediaGalleries
API 列出用户设备上的媒体库。它一直工作到 item.name
部分。
我从 Google 开发者 youtube 频道观看了 video,他们在其中使用了 JSON.parse
。但是,这会抛出一个 Uncaught SyntaxError: Unexpected token c in JSON at position 0
正如预期的那样。这不是 JSON.
所以我的问题是:如何检索人类可读的内容(视频、音乐等)。到目前为止,这是我的代码:
getGalleriesInfo(/*Array of DOMFileSystem objects*/ results) {
if (!results.length)
return console.log('No galleries found');
console.log('Gallery count: ' + results.length);
results.forEach((item, index) => {
let gallery = item.name;// JSON.parse(item.name) doesn't work
console.log(index, ' => ', gallery); // 0 => chrome-extension_hmnfbbnkjlgjgmlgpacnkkndfidbejpo_0:External_media_galleries-Default-hmnfbbnkjlgjgmlgpacnkkndfidbejpo-1, etc.
});
}
// I'm using a custom element (document.registerElement)
createdCallback() {
chrome.mediaGalleries.getMediaFileSystems({
interactive: 'if_needed'
}, this.getGalleriesInfo);
}
谢谢,
贾斯汀
编辑:Chrome item
的调试器视图
(来源:jtprogramming.com)
chrome.getMediaGalleries API 似乎已更改。要查找任何给定画廊的名称,您必须使用 getMediaFileSystemMetadata 方法。
_getGalleriesInfo(results) {
if (!results.length)
return console.log('No galleries found');
console.log('Gallery count: ' + results.length);
results.forEach((item, index) => {
console.log(chrome.mediaGalleries.getMediaFileSystemMetadata(item));
});
}
其中 returns 一个包含 DOMFileSystem 元数据的对象。
Object {
galleryId: (string) int,
isAvailable: boolean,
isMediaDevice: boolean,
isRemovable: boolean,
name: "C:\example\path\to\gallery"
}
我正在尝试使用 chrome.getMediaGalleries
API 列出用户设备上的媒体库。它一直工作到 item.name
部分。
我从 Google 开发者 youtube 频道观看了 video,他们在其中使用了 JSON.parse
。但是,这会抛出一个 Uncaught SyntaxError: Unexpected token c in JSON at position 0
正如预期的那样。这不是 JSON.
所以我的问题是:如何检索人类可读的内容(视频、音乐等)。到目前为止,这是我的代码:
getGalleriesInfo(/*Array of DOMFileSystem objects*/ results) {
if (!results.length)
return console.log('No galleries found');
console.log('Gallery count: ' + results.length);
results.forEach((item, index) => {
let gallery = item.name;// JSON.parse(item.name) doesn't work
console.log(index, ' => ', gallery); // 0 => chrome-extension_hmnfbbnkjlgjgmlgpacnkkndfidbejpo_0:External_media_galleries-Default-hmnfbbnkjlgjgmlgpacnkkndfidbejpo-1, etc.
});
}
// I'm using a custom element (document.registerElement)
createdCallback() {
chrome.mediaGalleries.getMediaFileSystems({
interactive: 'if_needed'
}, this.getGalleriesInfo);
}
谢谢,
贾斯汀
编辑:Chrome item
的调试器视图
(来源:jtprogramming.com)
chrome.getMediaGalleries API 似乎已更改。要查找任何给定画廊的名称,您必须使用 getMediaFileSystemMetadata 方法。
_getGalleriesInfo(results) {
if (!results.length)
return console.log('No galleries found');
console.log('Gallery count: ' + results.length);
results.forEach((item, index) => {
console.log(chrome.mediaGalleries.getMediaFileSystemMetadata(item));
});
}
其中 returns 一个包含 DOMFileSystem 元数据的对象。
Object {
galleryId: (string) int,
isAvailable: boolean,
isMediaDevice: boolean,
isRemovable: boolean,
name: "C:\example\path\to\gallery"
}