javascript - 将 WebRTC getUserMedia 与 UWP WebView 一起使用的问题
问题描述
我创建了一个基本的 UWP 应用程序,带有WebView
. 我正在导航到这个 URL:https ://webrtc.github.io/samples/src/content/getusermedia/gum/来测试getUserMedia()
.
我得到的错误是:
获取用户媒体错误:NotFoundError
我还添加了 Capabilities Webcam 功能,为您的应用启用相机设备。但没有运气。
有谁知道这是否应该是可能的,如果我做错了什么?有人getUserMedia
在 UWP中使用WebView
吗?
解决方案
您需要PermissionRequest
在PermissionRequested
事件处理程序中允许。
除了处理 PermissionRequested 事件的应用程序之外,用户还必须为请求位置或媒体功能的应用程序批准标准系统对话框,以便启用这些功能
MyWebView.PermissionRequested += MyWebView_PermissionRequested;
private void MyWebView_PermissionRequested(WebView sender, WebViewPermissionRequestedEventArgs args)
{
if (args.PermissionRequest.PermissionType == WebViewPermissionType.Media)
{
args.PermissionRequest.Allow();
}
}
更新 WinJS 应用程序,您可以参考此文档。
document.getElementById('live-preview').addEventListener("MSWebViewPermissionRequested", permissionRequestedEventArgs => {
const permissionRequest = permissionRequestedEventArgs.permissionRequest;
switch (permissionRequest.type) {
case "geolocation":
case "media":
permissionRequest.allow();
break;
case "pointerlock":
case "webnotifications":
case "screen":
case "immersiveview":
case "unlimitedIndexedDBQuota":
default:
permissionRequest.deny();
break;
}
});
推荐阅读
- java - 递归遍历数组并计算像素
- javascript - Node.js:意外省略 var 声明通过全局对象、错误或功能公开所有变量?
- swift - 领域崩溃,错误原因:'属性'人'被声明为'NSArray',即使我已经删除了数组
- c# - Rx - 方法在哪里导致内存泄漏?
- ethereum - Solidity 是否根据调用合约方法之前和之后使用的总存储量来优化 gas 使用?
- reactjs - 当超过 2 个 reducer 时,Webpack 4 不生成 webpackBootstrap 函数
- python-3.x - 获取在 Python turtle 中工作的键绑定
- msbuild - 自定义道具/目标的 MSBuild 设计实践
- c# - 填充有空实体的列表视图
- javascript - Why does push of local array mutate global array?