【问题标题】:Using Webrtc in Native App在 Native App 中使用 Webrtc
【发布时间】:2013-05-31 18:37:01
【问题描述】:

我的问题是:

1 -- 是否可以在我的 Native App 中拥有一个 WebView(由 Native 框架提供)实例,并将其扩展为支持 Webrtc,

如果 1 为是,那么接下来可能是动作项

1 -- 在 Android 上构建 webrtc,2 -- 在 Android WebView 中扩展 Javascript 以耦合/绑定 Webrtc 调用,

请确认..

我想做的是

1 -- 我们有基于 webrtc 的语音/视频聊天应用程序在 Chrome 和 Mozilla 桌面浏览器中运行良好,因为两者都带有 webrtc...,即用户需要访问 www.xyz.com,它将启动视频/语音会议,

2 -- 在移动设备上也一样,我们想作为一个原生应用程序,即我们正在尝试制作一个应用程序,它将具有原生 WebView 实例,我们将在其中访问 www.xyz.com 以获得语音/视频会话

3 -- 我尝试了我在 2 中解释的方式,但似乎在应用程序框架提供的 WebView 实例中没有启用 webrtc,所以我正在尝试添加它,这就是我的想法,

-- WebView 实例有一些扩展 Javascript 的机制,这意味着 http://dev.w3.org/2011/webrtc/editor/webrtc.html 我需要将其中一些 API 添加到 WebView 中,如果我能够在 android 和 iOS 平台上成功集成和构建 Webrtc,它们的实现将会到来

请发表评论……

【问题讨论】:

  • 嗨 Amitg2k12,我看到了你的评论。但我不知道你想做什么。说你想在应用程序中使用 WebView,并扩展以支持 webrtc。让我感到困惑的是重点,WebView 还是 webrtc 本身?如果 webrtc 是重点,为什么要使用 WebView,webrtc 本身可以在 android 上构建和使用,不需要使用 WebView 和 JS。如果您的应用程序已经使用 WebView 构建并且只想添加 webrtc 功能进入它,我应该说对不起,因为我没有关于带有 JS 的 webrtc 的信息,我只是用 JNI+NDK 构建 webrtc 的独立音频处理模块。所以请说清楚:)
  • @billhoo :感谢您查看它,我已经相应地编辑了问题,希望它现在更加清晰..
  • 我明白你的意思。但我没有开发 WebView 的经验。 WebRTC 目前似乎不支持移动浏览器。无论如何,我发现很多人都在问与您相同的问题,并找到这些网站 1.groups.google.com/forum/#!msg/discuss-webrtc/XiMzboUM-ic/… 2.[stackoverflow.com/questions/15352237/… 3.caniuse.com/#feat=stream 可能对您有所帮助,希望对您有所帮助。
  • 我认为这个链接涉及到与Audio_Processing相关的每一个答案,无论是预处理还是后处理Android_Audio_Processing_Using_WebRTC,你也可以访问这个参考:stackoverflow.com/a/58546599/10413749

标签: android ios android-webview webrtc


【解决方案1】:

我正在构建一个包含 webview 和 webrtc 视频的原生应用。 所以通常可以构建这样的应用程序,现在 chromium (webview) 有官方支持 https://developer.chrome.com/multidevice/webview/overview ,但我在编写该应用程序时遇到了很多问题。

几个问题是:

  • 支持手机和操作系统版本 - 我有 android 5.1.1 (xperia m2) 并且在运行 webrtc 出现很多问题之后。在 android 6 (xperia z5 compact) 上不工作。在其他手机上有时工作有时不工作......
  • 您无法确定 webview 将如何工作 - 今天 webrtc 正在工作,但明天 Google 可以添加一些安全规则,但它不会工作 - 它有点不稳定,正如我所见,有些事情取决于操作系统编译。 WebView 可以独立于操作系统从 store 获取更新。
  • PERMISSIONS - 有很多愚蠢的问题,基于它是本机应用程序中的浏览器这一事实,例如 - 你不能期望来自 webview 的权限问题,你必须在 android webview 配置中实现它,并且在某些 android 版本中它可以工作 - 在其他版本中不是 :-)
  • “年轻产品”仍然存在很多问题 - 例如,现在 webview 在设备信息显示方面存在一些问题(例如摄像头在正面或背面),因此您必须找到解决此类问题的解决方法
  • 糟糕的视频质量 - 目前我的问题是视频质量 - 手机上的视频质量很好,低于消耗的最大资源(cpu、网络、内存)并且计算机上的视频真的很差......
  • ...还有更多

所以事实是 - 是的,这是可能的,但是在不面临很多不容易解决的问题的情况下使用它仍然不够好。

【讨论】:

    【解决方案2】:

    您实际上可以使用 html5 功能实现原生化。因此,如果您像之前提到的那样使用 Crosswalk,但如果您真的反对使用:Crosswalk/Ionic/Angular/Cordova(这很棒),您仍然可以在本机环境中使用 Crosswalk 来用 1 替换不一致和缺少功能的 WebView基于 Blink Engine 的单一、完全兼容 WebRTC 的 WebView。

    我记得读过一些关于如何在 Android Studio 中使用 Crosswalk 的指南,这是我快速搜索的一个,但只有 Google 周围有一堆。 https://www.snip2code.com/Snippet/34721/How-to-use-CrossWalk-runtime-within-an-A

    【讨论】:

      【解决方案3】:

      在 Android L 版本中,这应该可以通过仅使用 Android WebView 来实现,更多内容如下: http://developer.android.com/about/versions/android-5.0.html#WebView

      【讨论】:

        【解决方案4】:

        我知道这个问题有点老了,但我发现人行横道 (https://crosswalk-project.org/) 是在 Android 应用程序中使用 WebRTC 的一个很好的解决方案。 crosswalk 所做的是将 chromium 浏览器编译到 Android 应用程序中,并将您的网站托管在该 chromium 中,这样您就可以支持最新的浏览器功能,例如 WebRTC。

        【讨论】:

        【解决方案5】:

        您将很难使用 WebView,尽管它至少会出现在(较新的)Android 上。 iOS 上什么都没有。

        如果您想要完全原生,您可以查看我们在@FM 与IceLink 所做的工作,听起来它可能适合您。

        【讨论】:

          【解决方案6】:

          如果您想在 Native App 中使用 webRTC,我已经构建了一个小型 android 应用程序 (https://github.com/pchab/AndroidRTC),它将后置摄像头共享到 nodeJS 服务器 (https://github.com/pchab/ProjectRTC)。 我发现使用 libjingle 库最简单的方法是使用 IntelliJ IDEA。我在使用 Eclipse 和 Android Studio 时遇到了很多问题。

          【讨论】:

          • 嘿!你的两个链接都坏了。您还在某处托管这些存储库吗?
          • 链接正常,但问题是我无法设置此服务器。他们说它将在 3000 端口上启动。但它崩溃了:(
          • 现在通过添加依赖项可以轻松使用 Android Studio - implementation 'org.webrtc:google-webrtc:1.0.+'。看看这个sample project
          【解决方案7】:

          Android WebView 目前不支持 WebRTC API。

          Java 和 Objective-C 绑定的工作正在进行中,尽管这可能无法解决您的问题。

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-04
          • 2015-10-13
          相关资源
          最近更新 更多