我创建了一个 BroadcastUploadExtension。之后,我打开了录制屏幕,但我是通过模拟点击 RPSystemBroadcastPickerView 来完成的,如下所示:
let picker = RPSystemBroadcastPickerView(frame: frame)
if let url = Bundle.main.url(forResource: "ScreenBroadcast", withExtension: "appex", subdirectory: "PlugIns") {
if let bundle = Bundle(url: url) {
picker.preferredExtension = bundle.bundleIdentifier
self.window.rootViewController?.view.addSubview(picker)
if let button: UIButton = picker.subviews.first(where: {view in view is UIButton}) as? UIButton {
button.sendActions(for: .touchUpInside)
然后我从这里开始录音:
在该扩展创建的示例处理程序中: 当我开始录制时,broadcastStarted()方法正在调用,但broadcastFinished()方法没有调用。 那么我怎么知道广播已经结束了呢? 我期望当用户点击停止在录音中心(上图)中的录音时,它应该调用broadcastFinished()方法。顺便说一句,我通过保存并检查它是否被调用来使用 UserDefaults 检查它。
事实证明,我应该使用我的主应用程序包标识符和“组”创建应用程序组。字首。我之前使用了我的扩展程序的标识符。