我用WebView创建了一个基本的UWP应用程序。我导航到以下URL:https://webrtc.github.io/samples/src/content/getusermedia/gum/以测试getUserMedia()的使用。

我得到的错误是:


  getUserMedia错误:NotFoundError


我还添加了功能网络摄像头功能,以为您的应用启用“摄像头”设备。但没有运气。

有谁知道这是否应该可行,以及我是否因此做错了事?有人在UWP getUserMedia中使用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

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;
    }
});

关于javascript - 通过UWP WebView使用WebRTC getUserMedia的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52713846/

10-12 00:54