iOS ReplayKit 开始倒计时结束自动退出弹窗

462 阅读1分钟

在使用Replaykit发起屏幕录制,“开始直播”倒计时结束后,系统的弹窗并未自动消失,用户需要点击一下空白区域才能开始自己的录屏操作,这个体验并不友好

只需简单两步,使系统的弹窗自动退出

  1. 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)
    }
}
  1. 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)