【问题标题】:TOK BOX Screen sharing is not working outside my appTOK BOX 屏幕共享在我的应用程序之外不起作用
【发布时间】:2020-08-25 04:37:23
【问题描述】:

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

【问题讨论】:

    标签: android mobile tokbox screensharing


    【解决方案1】:

    我也遇到了同样的问题,并已邮寄给 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 repo,它展示了如何将 Media Projection API 与 tokbox 集成。 更具体地说,这两个文件:ScreenSharingFragment.javaScreenSharingCapturer.java

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

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

    【讨论】:

      【解决方案2】:

      根据 Tokbox,我们不能在应用程序之外共享屏幕。

      【讨论】:

        【解决方案3】:

        来自视频 API 团队的 Manik。

        要在 Android 平台上屏幕共享应用程序之外的内容,您需要使用Media Projection API。结合 Media Projection API,您需要使用Custom Capturer

        我们正在开发一个示例应用程序,可让您完成此任务 - 请继续关注!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-11
          • 1970-01-01
          • 2012-06-21
          相关资源
          最近更新 更多