无法使用 WebChromeClient 播放 DRM 内容

Posted

技术标签:

【中文标题】无法使用 WebChromeClient 播放 DRM 内容【英文标题】:Unable to play DRM content with WebChromeClient 【发布时间】:2020-10-05 03:33:15 【问题描述】:

我正在尝试在 android Pie 中构建一个能够播放 DRM 内容的简单 webview,例如使用 Bitmovin 或 Shaka Player。我从其他 *** 帖子中收集了一些 sn-ps,但是虽然 Bitmovin/Shaka 显然可以检测到 Widevine 支持并播放声音,但视频没有加载。

到目前为止,这是我的代码:

    WebView browser = findViewById(R.id.webview);

    browser.setWebChromeClient(new WebChromeClient()
       @Override
       public void onPermissionRequest(PermissionRequest request) 
           String[] resources = request.getResources();
           for (int i = 0; i < resources.length; i++) 
               if (PermissionRequest.RESOURCE_PROTECTED_MEDIA_ID.equals(resources[i])) 
                   request.grant(resources);
                   return;
               
           
           super.onPermissionRequest(request);
    );

    browser.getSettings().setjavascriptEnabled(true);
    browser.getSettings().setDomStorageEnabled(true);

    browser.loadUrl("https://bitmovin.com/demos/drm");

知道可能缺少什么吗?

【问题讨论】:

【参考方案1】:

它失败了,因为该设备只有 Widevine L3,它适用于 L1

【讨论】:

以上是关于无法使用 WebChromeClient 播放 DRM 内容的主要内容,如果未能解决你的问题,请参考以下文章

WebView 中的 VideoView 不会播放视频?

将javascript注入WebChromeClient

WebViewClient 和 WebChromeClient 是互斥的吗?

WebView使用详解——WebChromeClient与LoadData补充

如何在 Android Studio 中使用 Kotlin 处理 WebChromeClient 中的输入类型文件?

如果使用 WebChromeClient 点击了 market:// 链接,则打开 Play 商店