TOK BOX屏幕共享在我的应用之外无法正常工作

问题描述

我为我的应用程序做了屏幕共享(tokBox)。 它在我的应用程序中运行良好。 但是我无法在应用程序外共享屏幕... 任何人都可以帮忙吗? https://tokbox.com/developer/guides/screen-sharing/android/

解决方法

我也遇到了同样的问题,并邮寄给了tokbox支持。 这是他们的回应:

我们的屏幕捕获代码的工作方式是它递归遍历视图层次结构并将这些图像复制到缓冲区,然后将该缓冲区发送到webrtc数据管道上。因此,一旦将应用程序推送到后台,我们就无法遍历视图层次结构并复制图像,因此屏幕共享才能生效,直到我们进入应用程序(Android或iOS本机应用程序)为止。如果您只想共享Opentok应用程序的屏幕视图,它将可以使用,但在该应用程序之外将无法使用。只是为了照顾移动应用程序用户的隐私和安全方面。

因此,根据它们,您无法在应用程序外共享屏幕。只有在应用程序处于前台时,它才起作用。

更新

在不断询问tokbox支持团队之后,我从他们那里得到了以下答复:

可以在Android和iOS上在应用程序外部共享内容。 对于Android,您需要将Media Projection APIVonage/Tokbox Custom Capturer一起使用。 对于iOS,您需要将iOS ReplayKitVonage/Tokbox Custom Capturer一起使用。 基本上,实现是从Media Project API或Replaykit获取框架,然后通过自定义捕获器将其传递。

在他们的回应之后,我发现了Accelerator Core Android回购,它显示了如何将Media Projection API与tokbox集成。 更具体地说,这两个文件:ScreenSharingFragment.javaScreenSharingCapturer.java

使用这两个文件,我现在可以在应用程序外部共享屏幕。

注意: 面向Android 9(API级别28)或更高版本的应用应使用Foreground services,否则由于安全原因您的应用将崩溃。

,

根据Tokbox,我们无法在应用程序外部共享屏幕。

,

视频API小组的Manik在这里。

要在Android平台上与应用程序外部共享内容,您需要使用Media Projection API。与Media Projection API结合使用时,您需要使用Custom Capturer

我们正在研究一个示例应用程序,它将允许您完成此操作-请继续关注!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...