使用 Codename One 在 WebView 上实现 WebRTC

2024-05-01

我正在开发一个应用程序,我需要使用 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" />
  1. 这是激活所有必要的 Android 权限的方法吗?
  2. 您认为是什么原因导致 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(使用前将#替换为@)

使用 Codename One 在 WebView 上实现 WebRTC 的相关文章

  • 错误 ITMS-90168:“您上传的二进制文件无效。”

    错误 ITMS 90168 您上传的二进制文件无效 生成的 API 分析文件太大 我们无法验证 交付前您的 API 每次我想将新版本的应用程序上传到 iTunes connect 时 都会出现上述错误 我正在使用应用程序加载器进行上传 我的
  • 如何在使用 UI 生成器创建的渲染器中添加动态数据?

    如何在使用 UI 生成器创建的渲染器中添加动态数据 从 ui 构建器创建渲染并使用动态数据填充列表 protected boolean initListModelList List cmp cmp setModel new com code
  • LittleMonkey QRScanner 库构建问题

    我使用过littleMonkey QRScanner 库 但它可以在模拟器中工作 显示扫描仪不支持对话框 但是当我构建项目时它给出了构建错误 PS 我已经删除了所有构建提示并再次刷新库 但仍然存在同样的问题 我按照建议保留了 cn1 cod
  • 在 Android 上从存储执行时,executeOfflineCommand 会跳过命令

    我必须在程序中按顺序执行 开始 和 完成 命令 并在最后同步所有内容 因此 我首先按顺序插入离线命令 并假设它们将以相同的顺序执行 为此 我使用 List 和 Iterator 这里的问题是 完成命令将在中间的一些奇怪的情况下错过执行 并且
  • 代号一动画麻烦(也在纸牌演示中)?

    代号一号 动画发生了什么 我使用了很多它们 截至 12 月 我的应用程序不再工作 当我六月离开时 一切都很好 一年多以来都是如此 我的应用程序是一款跳棋 跳棋 游戏 自 2013 年起就在应用程序商店中提供 在观看 CN1 Poker 演示
  • 代号一号如何运作?

    我正在寻找针对多个移动平台进行开发的替代方案 并发现代号一 http www codenameone com 使用 Java 作为通用语 而不是 HTML CSS JS 或脚本语言 我找不到的是它是如何工作的 它是否将 JVM 与 iOS
  • AdMob 广告未在 iOS 中展示

    过去几天 iOS 版本没有展示 AdMob 广告 它曾经有效 我没有改变任何东西 iOS 9 3 5 IDE NetBeans 8 0 2 CodenameOne 插件 3 5 2 操作系统 Windows 7 Google 弃用了旧的 a
  • 绘制自定义组件

    这是两个问题 1 是最重要的paint的成员Component使用代号为 1 的简单 2D 图形游戏的最佳方法是什么 或者我什至不应该尝试它 2 为什么下面的代码会画出我的Component只是立即删除它 我像这样初始化我的组件 prote
  • MediaPlayer 视频大小代号?

    我一直在使用 Codename 1 来开发 VideoCapture String file Capture captureVideo Media video MediaManager createMedia file true f add
  • 代号一 - iOS 上的密码字段屏蔽和取消屏蔽

    TextField password new TextField Pass Word 15 TextField PASSWORD CheckBox maskAndUnmaskCheck new CheckBox maskAndUnmaskC
  • 代号一:将图像保存到存储并创建小圆形预览

    我目前的图像有问题 1 我无法将图像保存到存储 因为不支持将其直接存储到存储 我希望用户能够用相机拍照 然后创建的照片必须保存在某个地方 以便我稍后可以再次检索它 你能告诉我怎么做吗 a 保存图像 b 如何检索它 我在 Stackoverf
  • CodenameOne 用于蓝牙连接的后台任务

    我正在使用 Codename One 开发一个应用程序 它连接到蓝牙 LE 专有外部设备并记录接收到的数据 平均数据大约每秒到达一次 我正在使用蓝牙 LE CN1 库 https github com chen fishbein bluet
  • 跨平台上的 AES cbc 填充加密/解密(.net c# 和代号 one bouncy castle)

    加密 解密不能在跨平台上工作 我已使用此链接使用代号一内的充气城堡 AES 密码来加密 解密文本 J2ME 中使用 Bouncycastle 进行 AES 加密 解密的示例 https stackoverflow com questions
  • 在 Codename One 中管理我的应用程序的演示/完整版本

    我被命令提供 2 个版本的应用程序 一个演示 轻型 有限功能 另一个完整 所有功能 我的代码中有一个布尔值 它告诉我哪个正在运行 它们都在模拟器或测试设备 iOS 和 Android 上按预期运行 现在我想分发它们 所以我读到这是可能的使用
  • 代号 1 个 JavaScript 回调

    我正在尝试在我的应用程序中显示同意页面 该页面应该用 html 编写 因此应用程序需要处理来自浏览器的按钮单击事件 我尝试复制博客中的例子 https www codenameone com blog new async java java
  • 使用 Codenameone 的 Oauth2 类获取 Dropbox Core API 的 OAuth2 访问令牌

    我正在尝试使用 codenameone 的 Oauth2 类来获取 Dropbox 核心 API 的访问令牌 我使用的代码如下 Oauth2 auth new Oauth2 https www dropbox com 1 oauth2 au
  • 是否可以在多按钮(代号一)上制作圆形图像(通过蒙版)

    我有一个InfiniteScrollAdapter我在其中使用Multibutton显示包含照片及其描述的列表 它效果很好 但我需要使照片变圆 这就是为什么我受到启发官方指南 https www codenameone com manual
  • 代号一 - 正确使用选择器

    我试图对选择器的使用提出一个明确的问题 因为我之前的问题不够清楚 代号一 Picker 的 addActionListener https stackoverflow com questions 48758348 codename one
  • 无法完成添加 Android 证书的构建

    我刚刚完成构建我的应用程序 我发送了一个没有证书的构建版本 它工作了 现在添加一个 android 证书 它在我的代号 one 仪表板上报告构建错误 如有帮助 将不胜感激 失败 构建失败并出现异常 出了什么问题 执行 任务失败 transf
  • 多次重启后应用程序冻结

    我构建了这个应用程序 它可以拍摄照片 显示它们以供接受 并通过帖子将它们上传到网络服务器 它的概念和执行都非常简单 但随后该应用程序在 Android 手机中冻结 我有一台 Xperia Z3 我有相当多的资源 也在 Moto X 中尝试过

随机推荐

  • 为什么这个 C++ 包装类没有被内联掉?

    EDIT 我的构建系统出了问题 我还在弄清楚到底是什么 但是gcc产生了奇怪的结果 尽管它是 cpp文件 但是一旦我使用了g 然后它按预期工作 对于我一直遇到麻烦的事情来说 这是一个非常精简的测试用例 其中使用数字包装类 我认为会内联 使我
  • 如何使用 JDBC 执行过程

    这是我的功能 public static void execute delete on db String pass String login String port String host String table name String
  • Android 自定义三角形按钮

    我想制作 2 个对角三角形按钮 如下所示这个问题 https stackoverflow com questions 23315400 android diagonal triangle buttons 我怎样才能实现这个目标 我应该用矩形
  • 如何在razor中的@Html.RadioButtonFor中添加aria-label?

    在我使用的 MVC 剃刀视图中 Html RadioButtonFor 我想使用 aria label 作为屏幕阅读器 但不知道如何使用它 如果我添加aria label然后我得到The name aria does not exist i
  • 获取表单对象中动态输入元素的值

    我的问题是 如何引用表单中输入元素的动态 名称 例如 使用以下 HTML
  • 如何更改matplotlib注释中的箭头样式?

    我想更改注释中的箭头头 matplotlib 但与其他属性一起使用时不起作用 例如shrink 通过查看参数集 它似乎改变了创建的对象的类型 Example 以下代码显示了两种类型的注释箭头 import matplotlib pyplot
  • 设置 Size 属性时 Winform 不会调整大小

    我有一个用于托管 WebBrowser 控件的 WinForm 我想根据浏览器加载的文档大小动态调整表单大小 我可以从 WebBrowser 控件中成功读取文档大小 并根据该大小设置表单大小 但表单根本不会调整大小 调整大小是在 WebBr
  • ComponentResourceKey 作为 DynamicResource 问题

    我在使用 ComponentResourceKey 时发现一些意外行为 出现问题是因为我使用了 SystemColors 类中使用的名称 考虑以下代码 首先 我将 a 中的 ComponentResourceKey 公开为静态属性 publ
  • 未找到类规范化器(在 PHP 5.3.8 中)

    我在尝试使用时收到此 PHP 错误Normalizer类 特别是Normalizer normalize功能 Fatal error Class Normalizer not found 我目前使用的是 PHP 5 3 8 因此 根据PHP
  • 如何使用云 Firestore 实现 HIPAA 合规性? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须开发一个健康应用程序 想知道是否可以使用 Cloud Firestore 作为它的后端 任何人都可以对如何使我的系统符合 HIPAA
  • 使用 javaw.exe 启动应用程序时,不会执行关闭挂钩

    如果我使用 javaw exe 启动 Java 应用程序 则当用户从其 Windows 帐户注销时 不会执行关闭挂钩 该应用程序实际上是使用 launch4j 生成的 exe 文件启动的 但我知道它使用 javaw exe 来启动它 这似乎
  • Python 套接字库认为套接字未打开时已打开

    我正在使用一些Python 如下所示 HOST 127 0 0 1 PORT 43434 single socket socket socket AF INET socket SOCK STREAM try single bind HOST
  • WPF 中的自动展开树视图

    有没有办法在 WPF 中自动展开树视图中的所有节点 我搜索了 甚至没有在 treeview 属性中找到展开功能 Thanks 您可以设置 ItemContainerStyle 并使用 IsExpanded 属性
  • Python - 列出文件夹中的文件 - 带变量的路径名

    我对此非常陌生 我正在使用 python 我想列出多个不同文件夹中的文件 使用 Windows 在我的第一次尝试中 我有很多路径变量 每条路径都有自己的变量 它确实有效 但这似乎是一种冗长的做法 由于除了文件夹名称之外 路径均相同 因此我尝
  • 使用包含双引号的字符串填充输入字段

    我从服务器返回一个值 其中包含双引号 我需要用值填充输入标签 我尝试过使用 escape myVariable 但这会将空格转换为 20 等 我想我可以写一个 if then 来表示如果字段中有双引号 则使用 value 但是如果字段中同时
  • 如何访问 Go 中的嵌套模块(子模块)?

    去版本 1 12 9 这是一个简单演示项目的结构 所以我们有一个模块domain 其中包含两个模块 activity and person 我想将域与主文件中的所有嵌套模块一起使用 gt 模块 go 我知道如何导入domain主要在go m
  • SciKit-Learn 的分解模块中未安装 LatentDirichletAllocation

    我在 SciKit Learn 包中遇到了一些奇怪的问题 SciKit Learn 包内有 分解 模块 其中应包含 LatentDirichletAllocation 函数 请参阅此处的文档 https scikit learn org s
  • 根据机会创建销售订单时填充自定义字段

    我在 SO 屏幕 SO301000 上创建了一个自定义字段 联系人 现在 当用户从机会屏幕 CR304000 创建销售订单时 我需要填充这些字段 新的自定义字段联系人基于在机会中选择的客户 我可以看到 当我从机会创建销售订单时 客户会自动填
  • 带 webusb 的指纹扫描仪

    可以将 USB 指纹扫描仪与 webusb 连接 配对 https wicg github io webusb https wicg github io webusb 我有数字角色 U are U 4500 想要使用react js 连接到
  • 使用 Codename One 在 WebView 上实现 WebRTC

    我正在开发一个应用程序 我需要使用 Android 的 WebView 包含 WebRTC 根据这篇文章 https developer chrome com multidevice webview overview https devel