使用 webrtc 时 ReplayKit 不起作用
Posted
技术标签:
【中文标题】使用 webrtc 时 ReplayKit 不起作用【英文标题】:ReplayKit doesn't work when work with webrtc 【发布时间】:2017-08-28 12:42:44 【问题描述】:我使用 WebRtc 创建点对点连接来共享视频和音频。我想使用 replaykit 录制屏幕和麦克风。如果我在建立对等连接后开始录制,这意味着两者可以相互共享视频和音频。在这种情况下,repalykit 无法录制屏幕和麦克风,并且 previewController 是黑色的.如果我在建立连接之前开始录制 replaykit 效果很好。如果我只选择录制屏幕或不添加RTCAudioTrack
,它一直有效。
那么如何在 webrtc 中使用 replaykit?
你可以用apprtc-ios开始测试
【问题讨论】:
你找到解决办法了吗,请分享 【参考方案1】:通话开始后,设备扬声器、麦克风和摄像头流将添加到 Peer 连接,并且无法用于应用中的其他输出。遵循 iOS 11 中引入的新 API。
/*! @abstract Starts screen and audio capture and continually calls the
supplied handler with the current sampleBuffer and bufferType and passed it
back to the application. Note that before recording actually starts, the
user may be prompted with UI to confirm recording.
@result handler Called continually with sampleBuffers and the bufferType.
Will be passed an optional NSError in the RPRecordingErrorDomain domain if
there was an issue starting the capture.
*/
- (void)startCaptureWithHandler:(nullable void(^)(CMSampleBufferRef
sampleBuffer, RPSampleBufferType bufferType, NSError * _Nullable
error))captureHandler completionHandler:(nullable void(^)(NSError *
_Nullable error))completionHandler API_AVAILABLE(ios(11.0), tvos(11.0));
此 API 用于捕获扬声器、麦克风和视频样本缓冲区,您可以使用 AVFoundation 的 AVAssetWriter 将它们写入文件。
【讨论】:
以上是关于使用 webrtc 时 ReplayKit 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作
使用 ReplayKit 广播时将 CMSampleBuffer 转换为 .mov
当我的 iOS 应用程序在后台使用 ReplayKit 时进行屏幕录制