用于视频通话的 iOS PIP(画中画)是私有 API 吗?

Saa*_*mer 5 objective-c ios xamarin swift react-native

我注意到除了 Facetime 之外,没有任何视频通话应用程序允许您在后台通过 PIP 进行视频通话/聊天。

Facetime 是如何实现的?它是我们不能使用的私有 API 吗?

我曾尝试搜索博客、论坛、StackOverflow、官方文档,但没有看到明确的答案。

我很怀疑,因为这个官方文档提到了以下内容,但它没有在那里指定 PIP:

禁止在后台使用相机。如果您尝试在后台开始运行摄像头,则捕获会话将发送带有此中断原因的 AVCaptureSessionWasInterruptedNotification。如果您没有明确调用 stopRunning 方法,您的 startRunning 请求将被保留,当您的应用程序返回前台时,您会收到 AVCaptureSessionInterruptionEndedNotification 并且您的会话开始运行。

jks*_*ard 6

是的,它是通过私有 API 实现的。第三方应用程序无法执行此操作。

基本上,人们玩过低延迟的实时流媒体视频并以画中画模式显示。做对了并不容易,但它是可行的。但是,您无法在画中画期间保持摄像头处于活动状态,因此遗憾的是仍然无法进行视频通话(至少是片面的)。

更新:在 iOS 15 中,现在可以使用“多任务相机访问权限”在画中画模式下使用 AVPictureInPictureController 保持相机录制。

  • 我说的是WebRTC第三方框架。`RTCVideoRender` 用于渲染视频流。PiP 使用 `AVPlayerLayer`,但在这个框架中,我们不使用 AVPlayer。那么如何在画中画中显示这一点呢? (2认同)