iOS版发送视频(屏幕共享)的数据包在后台UDP连接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS版发送视频(屏幕共享)的数据包在后台UDP连接相关的知识,希望对你有一定的参考价值。

我的工作与屏幕共享功能,利用广播上传扩展ios应用程序。我能够发送视频数据包使用在前台模式屏幕共享UDP连接,但是当应用程序被切换到后台模式没有视频数据包被发送到媒体服务器。虽然音频数据包越来越交付。我已经打开音频的Airplay和VoIP的背景模式。

也帧被添加到使用以下代码的捕获器。

RTCCVPixelBuffer *rtcPixelBuffer = [[RTCCVPixelBuffer alloc] 
initWithPixelBuffer:pixelBuffer];
int64_t timeStampNs =
CMTimeGetSeconds(CMSampleBufferGetPresentationTimeStamp(sampleBuffer)) 
* NSEC_PER_SEC;
RTCVideoFrame *videoFrame = [[RTCVideoFrame alloc] 
initWithBuffer:rtcPixelBuffer rotation:RTCVideoRotation_0                                                     
timeStampNs:timeStampNs];

//NSLog(@"videoframe %@",videoFrame.buffer.description);
[_videoSource capturer:_capturer didCaptureVideoFrame:videoFrame];

我可以看到添加的上述帧捕捉器,即使在后台模式,但不能够看到服务器中的任何。

注 - 将数据发送到服务器的所有代码写在包含应用程序,而不是在扩展。

答案

苹果replayKit仅适用于前景由于安全政策苹果不允许在后台运行。在你的情况下,当应用程序进入后台有不会产生任何视频缓冲器。您可以通过在调试检查

重写FUNC processSampleBuffer(_ sampleBuffer:CMSampleBuffer,与sampleBufferType:RPSampleBufferType){

}

以上是关于iOS版发送视频(屏幕共享)的数据包在后台UDP连接的主要内容,如果未能解决你的问题,请参考以下文章

iOS ReplayKit 屏幕共享,屏幕直播实现

iOS ReplayKit 屏幕共享,屏幕直播实现

iOS ReplayKit 屏幕共享,屏幕直播实现

什么会导致 UDP 数据包在发送到 localhost 时被丢弃?

UDP通信_ DatagramSocket 实现_客户咨询

WebRTC音视频之iOS屏幕共享画面静止时,如何传递视频数据