在使用Replaykit发起屏幕录制,“开始直播”倒计时结束后,系统的弹窗并未自动消失,用户需要点击一下空白区域才能开始自己的录屏操作,这个体验并不友好
只需简单两步,使系统的弹窗自动退出
- Broadcast Upload Extension中,屏幕录制开始时,通过CFNotificationCenter告知app主程序
import ReplayKit
class SampleHandler: RPBroadcastSampleHandler {
overrid func broadcastStarted(withSetupInfo setupInfo: [String : NSObject]?) {
let center = CFNotificationCenterGetDarwinNotifyCenter()
let name = CFNotificationName("broadcastStarted" as CFString)
CFNotificationCenterPostNotification(center, name, nil, nil, true)
}
}
- app主程序订阅该通知
let center = CFNotificationCenterGetDarwinNotifyCenter()
let name = "broadcastStarted" as CFString
CFNotificationCenterAddObserver(center, **nil**, { _, _, _, _, _ in
//收到屏幕录制开始通知,跳转回app主程序
UIApplication.shared.open(URL(string: "<your app scheme>://")!, options: [:], completionHandler: nil)
}, name, nil, .deliverImmediately)