尝试使用重播套件 ios 在实时广播中启动无效的广播会话



我目前正在开发实时屏幕广播应用程序,该应用程序允许用户在Youtube,Facebook,Mobcrush等应用程序上共享他们的屏幕。 一切正常,但有时广播会自动停止并抛出错误,每次我打开应用程序并在呈现RPBroadcastActivityViewController并选择应用程序后,所选应用程序的实时预览视图都会自动关闭,RPBroadcastActivityViewController也会被关闭。另外,我无法启用麦克风。如果我启用麦克风,它会抛出错误。

广播自动停止时出错 -

试图启动无效的广播会话

尝试启用麦克风时出错 -

在开始之前,必须先启用麦克风录音录制

我的代码:-

extension MainViewController: RPBroadcastActivityViewControllerDelegate {
func broadcastActivityViewController(_ broadcastActivityViewController: RPBroadcastActivityViewController, didFinishWith broadcastController: RPBroadcastController?, error: Error?) {
broadCastVC = broadcastController
broadCastVC?.delegate = self
broadcastActivityViewController.dismiss(animated: true) {
guard error == nil else {
return
}
broadCastVC?.startBroadcast(handler: { (error) in
RPScreenRecorder.shared().delegate = self
RPScreenRecorder.shared().isMicrophoneEnabled = true
guard error != nil else {
return
}
print(stringVal: "Live :- Error:- (error?.localizedDescription ?? "")")
})
}
}
}

extension MainViewController: RPBroadcastControllerDelegate {
func broadcastController(_ broadcastController: RPBroadcastController, didFinishWithError error: Error?) {
guard error != nil else {
return
}
print(stringVal: "Live :- Error while starting broadcast :- (error?.localizedDescription ?? "")")
if broadCastVC?.isBroadcasting == true {
broadCastVC?.finishBroadcast(handler: { (error) in
})
}
}
}
extension MainViewController: RPScreenRecorderDelegate { }

extension MainViewController {
@IBAction func switchAudio(_ sender: Any) {
let sharedRecorder = RPScreenRecorder.shared()
sharedRecorder.isMicrophoneEnabled = self.audioSwitch.isOn
}
@IBAction func btnStartBroadCastAction(_ sender: UIButton) {
if broadCastVC?.isBroadcasting == true {
broadCastVC?.finishBroadcast(handler: { (error) in
})
} else {
RPBroadcastActivityViewController.load(handler: { (broadCastACTVC, error) in
if let broadcastAVC = broadCastACTVC {
broadcastAVC.delegate = self
if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.phone {
self.present(broadcastAVC, animated: true, completion: nil)
} else {
broadcastAVC.popoverPresentationController?.sourceView = self.btnBroadCast
broadcastAVC.modalPresentationStyle = UIModalPresentationStyle.formSheet
broadcastAVC.preferredContentSize = CGSize(width: self.view.frame.width, height: self.view.frame.height)
self.present(broadcastAVC, animated: true, completion: nil)
}
}
})
}
}
}

我找不到重播工具包的任何文档。请帮助我找到 ReplayKit 文档或任何示例(如果有(。

谢谢。

这意味着扩展在安装完成之前崩溃。使用菜单Debug>Attach to Process by PID or Name…,输入扩展进程的确切名称,等待它被设置(它应该出现在调试检查器下(,然后启动你的广播会话。然后,您将在调试器中找到崩溃。

您应该检查您的扩展是否已超过 50mb 的内存限制。就我而言,我发现快速打字是内存警告的原因。

苹果开发者论坛上有一些关于内存问题的讨论,但到目前为止还没有官方回复。

最新更新