【发布时间】:2019-01-11 05:50:37
【问题描述】:
我正在使用广播上传扩展开发具有屏幕共享功能的 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];
即使在后台模式下,我也可以看到上述帧被添加到捕获器中,但在服务器上看不到任何内容。
注意 - 所有向服务器发送数据的代码都写在包含应用程序而不是扩展程序中。
【问题讨论】:
-
要让应用程序在后台运行,仅仅启用后台模式是不够的,您需要添加额外的代码让应用程序知道该代码应该在后台模式下运行
-
@VarunNaharia 我应该写什么代码让应用程序知道我想在后台模式下从套接字写入?
-
尝试谷歌搜索“ios background execution”
标签: ios sockets background webrtc replaykit