chrome app - chrome.desktopCapture在使用webview

时间:2016-01-07 12:27:52

标签: javascript google-chrome webview google-chrome-app

我试图在Chrome打包应用中从网络视图中进行屏幕共享工作。

我目前有一个网页,当需要桌面共享时调用window.postMessage,我需要chrome.desktopCapture.chooseDesktopMedia来发回chromeMediaSourceId以允许调用navigator.webkitGetUserMedia。

我的Chrome应用主html页面只有一个<webview>标记,指向外部网站。

我已经能够从webview中获取消息并将其发送到background.js并调用

chrome.runtime.onMessage.addListener(function (message, sender, callback) {

   chrome.desktopCapture.chooseDesktopMedia(['screen'],sender.tab, function (streamid) {
                message.type = 'gotScreen';
                message.streamId = streamid;
                callback(message);
            });
});

我得到屏幕选择器弹出窗口,在选择屏幕后,streamId通过回调发送,回调将消息发布到webview,然后使用流id调用navigator.webkitGetUserMedia。此调用失败,我收到InvalidStateError

如果我在没有webview的情况下运行应用程序,屏幕共享就能完美运行。似乎因为sender.tab没有设置webview没有权限使用生成的streamId。

如果从webview中调用navigator.webkitGetUserMedia并从background.js调用chrome.desktopCapture,有没有办法让屏幕共享工作?

0 个答案:

没有答案