捕获屏幕 -- chrome.desktopCapture.chooseDesktopMedia 失败 -- PNacl
Capture screen -- chrome.desktopCapture.chooseDesktopMedia fails -- PNacl extension
>我正在尝试以以下方式使用desktopCapture API。
chrome.desktopCapture.chooseDesktopMedia(
["screen", "window"], onAccessApproved);
chrome.desktopCapture 在我设置断点并检查它时显示为未定义。我的清单文件中的权限如下:-
"permissions": ["desktopCapture", "notifications" ]
此处列出了此 API 失败的常见原因,如下所示
- 应用程序的清单 .json 文件中缺少权限
- API 是在较新版本的 Chrome 上定义的,然后是在当前运行时上定义的从 ChromeAPI 继承的文档
我没有这些问题。
- 我的浏览器版本
43.0.2357.124 m
- 胡椒版是43
仅供参考,我正在尝试开发一个 Chrome 扩展程序来使用 PNacl 捕获屏幕,并借用了从这里下载的media_stream_video示例。 但我什至还没有向 pexe 方面发送消息。我仍然停留在返回未定义chrome.desktopCapture.chooseDesktopMedia
。
您需要从扩展上下文中运行的后台脚本调用chrome.desktopCapture.chooseDesktopMedia
。此示例演示使用扩展获取屏幕媒体的简单方法。
请记住,这是基于回调的,因此您可以从回调访问流 ID。
这会在您的页面上下文中运行(请参阅此处的完整示例):
// check that the extension is installed
if (sessionStorage.getScreenMediaJSExtensionId) {
// send a message to your extension requesting media
chrome.runtime.sendMessage(sessionStorage.getScreenMediaJSExtensionId,
{type:'getScreen', id: 1}, null,
function (data) {
if (data.sourceId === '') { // user canceled
// handle error
} else {
constraints.video.mandatory.chromeMediaSourceId = data.sourceId;
getUserMedia(constraints, callback);
}
}
);
}
这在扩展的上下文中运行(请参阅此处的完整示例):
chrome.runtime.onMessageExternal.addListener(function (message, sender, callback) {
switch(message.type) {
case 'getScreen':
var pending = chrome.desktopCapture.chooseDesktopMedia(message.options || ['screen', 'window'],
sender.tab, function (streamid) {
// communicate this string to the app so it can call getUserMedia with it
message.type = 'gotScreen';
message.sourceId = streamid;
callback(message);
return false;
});
return true; // retain callback for chooseDesktopMedia result
}
});
相关文章:
- 没有找到相关文章