我正在开发一个应用程序,我需要使用 Android 的 WebView 包含 WebRTC。根据这篇文章:[https://developer.chrome.com/multidevice/webview/overview] https://developer.chrome.com/multidevice/webview/overview%5D自 WebView v36 起完全支持它。 (我正在 Android 5.1.1 / Chrome 54 / Mobile Safari 537.36 上进行测试。我确认它可以在独立的 Chrome 浏览器上运行)。
截至目前,WebRTC 的查看功能正常。
然而,广播(从摄像头捕获视频并将其发送到服务器)不起作用。注意:它适用于同一 Android 上的独立 Chrome。
我已将所有这些权限包含在 codenameone_settings.properties 文件中:
android.xpermissions=<uses-permission android:name="android.permission.CAMERA" android:required="true"/>\
<uses-permission android:name="android.permission.RECORD_AUDIO" android:required="true" />\
<uses-permission android:name="android.permission.INTERNET" android:required="true" />\
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:required="true" />\
<uses-permission android:name="android.permission.CAMERA" android:required="true" />\
<uses-feature android:name="android.hardware.audio.low_latency" android:required="true" />\
<uses-feature android:name="android.hardware.audio.pro" android:required="true" />\
<uses-feature android:name="android.hardware.microphone" android:required="true"/>\
<uses-feature android:name="android.hardware.camera" android:required="true" />\
<uses-feature android:name="android.hardware.camera.autofocus" android:required="true"/>\
<uses-feature android:name="android.hardware.camera" android:required="true" />\
<uses-feature android:name="android.hardware.camera.front" android:required="true" />
- 这是激活所有必要的 Android 权限的方法吗?
- 您认为是什么原因导致 WebRTC 无法正常工作?
WebView 由 BrowserComponent 类调用。
我知道 Android 代码被翻译为本机代码,并且我相信有一种方法可以让它工作。谢谢!
我只是看了几个例子(here https://github.com/GoogleChrome/chromium-webview-samples/blob/master/webrtc-example/app/src/main/java/com/google/chrome/android/webrtcsample/MainActivity.java#L144-L163 and here https://github.com/onsip/chromium-webview-samples,看起来 webview 需要授予一些权限才能允许 webrtc 工作。
我做了一个小变化 https://github.com/codenameone/CodenameOne/commit/e86f42c58739711c6cbe1663cd9e677bb7517bb7到我们的 Android 端口,您应该可以授予这些权限。您只需指定应允许权限的来源即可。您可以通过将“android.WebView.grantPermissionsFrom”显示属性设置为要授予权限的 URL(或空格分隔的 URL)来完成此操作。
e.g.
Display.getInstance().setProperty(
"android.WebView.grantPermissionsFrom",
"https://www.example.com/"
);
在应用程序的 init() 或 start() 方法中调用此方法。
NOTE这些更改要等到下一次服务器更新后才可用。我不确定具体是什么时候,因为训练营现在正在进行中。通常是每周五,但由于训练营的原因可能会推迟到五月的第一周。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)