Thanks for the post and glad to hear that you have found the answer. Yes, the ReplayKit only works in the foreground(https://developer.apple.com/documentation/replaykit) and when it needs to work in the background, it requires background mode to access the video buffer so that the SDK could fetch and keep broadcasting while the SDK app is in the background.
Hi Carson
In fact I get a new issue. same code has different result in ipad and iphone. In iphone share screen works well, includes voice, video sharing is smooth.
In Ipad voice always stop in several seconds later; and video stops, too.
Whether I should add some code in this function?
- (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer withType:(RPSampleBufferType)sampleBufferType {
[self.screenShareService processSampleBuffer:sampleBuffer withType:sampleBufferType];
switch (sampleBufferType) {
case RPSampleBufferTypeVideo:
// Handle video sample buffer
break;
case RPSampleBufferTypeAudioApp:
// Handle audio sample buffer for app audio
break;
case RPSampleBufferTypeAudioMic:
// Handle audio sample buffer for mic audio
break;
default:
break;
}
}
The switch statement is not needed(But keeping it will not cause any issues).
I have just tested the screen sharing feature in our demo app with iPhone X(13.3.1) and iPad Pro 3rd-gen(13.3.1), I have tested the cases “share UI, share video, and share audio”. Everything is working fine.
The broadcast extension relies on the ReplayKit, which might not exist on some older devices(Per https://developer.apple.com/documentation/replaykit, the ReplayKit is available on iOS 9.0+). You could use this website to identify the iPad devices you are using: https://support.apple.com/en-us/HT201471, if the OS version on your devices are above iOS 9+ and still causing issues, please let us know the model number and iOS version so that we could further investigate this.
Hi Carson
Thanks your quickly replay.
This is my ipad mini device version which does not push screen to other end user. In fact zoom client works well on it. So I guess there are some other knowledge that I don’t get.
Thanks for the reply. It is very strange that under the same scenario, the zoom client works but the SDK does not. Basically the SDK is a customizable version of the Zoom client.
Could you use the following code to check whether the device can use ReplayKit before actually start the sharing?
[RPScreenRecorder sharedRecorder].available
In fact, based on my research online, it seems like some other users have reported that the ReplayKit is not working very well with the device iPad Mini 2.
Getting over this issue, I still have two issues: 1) In Ipad sharing video or audio always stop under share screen mode. But in Iphone it’s not reproduced. 2)It often get stoped error, especially I touch web page based UI, example this one.
Thanks for the reply. It is strange that the screen sharing stops frequently on iPad (and only on iPad). Are you seeing any errors in the console when the shared screen stopped?
Have you ever tried to uninstall your app, then restart the ipad, and then build your app? This is maybe solved. We found that some ios systems and devices of previous apple did have such a bug
Murray
I have tried as you said, but this issue still exists. it’s very easy to reproduce under IPad screen sharing, and never happens in IPhone.
In the same ipad device and same meeting ID, zoom app works well, so I guess the root cause is project setting. this is my project setting. BTW, Is there any special setting in Info.plist file?
Hi Carson
I am sure it’s SDK bug, because I go back the pre-version SDK(zoom-sdk-ios-4.4.57220.1211), it works perfect.
BTW, Mac platform SDK( v4.6.15088.0210 has a bug. When host is not in meeting, user try to join a meeting, most of PC will pop up a waiting host window; but several PC crash. Windows SDK has no this issue.
Thanks for the reply. Regarding the iOS issue, we are still investigating, thanks for the info. Regarding the Mac SDK issue, it sounds like you have enabled the waiting room feature(https://support.zoom.us/hc/en-us/articles/115000332726-Waiting-Room), but we are able to reproduce the crash. Could you provide the SDK log and .crash log for us to further investigate?
Thanks for the log file. After analyzing the log file, it seems like the crash is on the UI. Are you using Custom UI on Mac SDK? Could you provide a little bit more details on the steps to reproduce this issue?