使用广播 UI 扩展显示 UI(可能是故事板)
Display UI (storyboard possibly) with Broadcast UI Extension
我对 IOS 编程有点陌生,我正在尝试使用 Replaykit 开始直播,我在从应用程序调用广播服务选择器视图方面取得了一些进展,也在创建 2 个扩展(广播上传扩展和广播 UI 扩展)。
显然,一旦从选择器视图中选择了扩展,就应该加载 Broadcast UI 扩展,而另一个在广播开始后接收数据,我首先尝试通过创建故事板并为其提供自定义来创建视图class 这与广播 UI 扩展相同,但是当我从选择器视图中单击扩展时,我立即收到错误 The user declined application recording
(不确定我是否遗漏了任何步骤这里),在没有情节提要的情况下也会出现同样的错误,我在广播 UI 扩展视图控制器的 override func viewDidLoad()
中尝试了 print()
并且在调试区域没有日志,所以我没有甚至知道它是否被加载。
我需要的是显示简单的 UI,然后调用 Broadcast UI 扩展视图控制器函数 (func userDidFinishSetup()
),然后开始广播。我也会接受是否可以在没有 UI 的情况下直接在应用程序中启动广播,在 Replaykit docs 我看到一个 startBroadcast
我认为可以实现这个的功能,得到了 broadcastInvalidSession = -5808
错误这意味着我 "attempted to start a broadcast without a prior session"。非常感谢帮助,谢谢。
广播UI视图控制器
import ReplayKit
class BroadcastSetupViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
print("WASSUP?");
}
// Call this method when the user has finished interacting with the view controller and a broadcast stream can start
func userDidFinishSetup() {
print("GET IN!!!");
// URL of the resource where broadcast can be viewed that will be returned to the application
let broadcastURL = URL(string:"http://apple.com/broadcast/streamID")
// Dictionary with setup information that will be provided to broadcast extension when broadcast is started
let setupInfo: [String : NSCoding & NSObjectProtocol] = ["broadcastName": "example" as NSCoding & NSObjectProtocol]
// Tell ReplayKit that the extension is finished setting up and can begin broadcasting
self.extensionContext?.completeRequest(withBroadcast: broadcastURL!, setupInfo: setupInfo)
}
func userDidCancelSetup() {
let error = NSError(domain: "YouAppDomain", code: -1, userInfo: nil)
// Tell ReplayKit that the extension was cancelled by the user
self.extensionContext?.cancelRequest(withError: error)
}
}
您的广播扩展的故事板是否在扩展的信息 plist 中配置?
在 NSExtension 字典下,您应该添加一个名为 "NSExtensionMainStoryboard" 的键,该值应该是您的故事板的名称,即 - "MainInterface"
是否也可以设置在扩展程序中调用的断点?
所以我联系了 Apple 技术支持事件(很遗憾),他们建议我将 "NSExtensionMainStoryboard" 添加到广播 UI 扩展的 info.plist 类似于 Greg 的回答,当没有用我发送了我的代码,我们发现我还必须从阻止它加载的相同位置删除 "NSExtensionPrincipalClass" 键,之后它工作正常。
我对 IOS 编程有点陌生,我正在尝试使用 Replaykit 开始直播,我在从应用程序调用广播服务选择器视图方面取得了一些进展,也在创建 2 个扩展(广播上传扩展和广播 UI 扩展)。
显然,一旦从选择器视图中选择了扩展,就应该加载 Broadcast UI 扩展,而另一个在广播开始后接收数据,我首先尝试通过创建故事板并为其提供自定义来创建视图class 这与广播 UI 扩展相同,但是当我从选择器视图中单击扩展时,我立即收到错误 The user declined application recording
(不确定我是否遗漏了任何步骤这里),在没有情节提要的情况下也会出现同样的错误,我在广播 UI 扩展视图控制器的 override func viewDidLoad()
中尝试了 print()
并且在调试区域没有日志,所以我没有甚至知道它是否被加载。
我需要的是显示简单的 UI,然后调用 Broadcast UI 扩展视图控制器函数 (func userDidFinishSetup()
),然后开始广播。我也会接受是否可以在没有 UI 的情况下直接在应用程序中启动广播,在 Replaykit docs 我看到一个 startBroadcast
我认为可以实现这个的功能,得到了 broadcastInvalidSession = -5808
错误这意味着我 "attempted to start a broadcast without a prior session"。非常感谢帮助,谢谢。
广播UI视图控制器
import ReplayKit
class BroadcastSetupViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
print("WASSUP?");
}
// Call this method when the user has finished interacting with the view controller and a broadcast stream can start
func userDidFinishSetup() {
print("GET IN!!!");
// URL of the resource where broadcast can be viewed that will be returned to the application
let broadcastURL = URL(string:"http://apple.com/broadcast/streamID")
// Dictionary with setup information that will be provided to broadcast extension when broadcast is started
let setupInfo: [String : NSCoding & NSObjectProtocol] = ["broadcastName": "example" as NSCoding & NSObjectProtocol]
// Tell ReplayKit that the extension is finished setting up and can begin broadcasting
self.extensionContext?.completeRequest(withBroadcast: broadcastURL!, setupInfo: setupInfo)
}
func userDidCancelSetup() {
let error = NSError(domain: "YouAppDomain", code: -1, userInfo: nil)
// Tell ReplayKit that the extension was cancelled by the user
self.extensionContext?.cancelRequest(withError: error)
}
}
您的广播扩展的故事板是否在扩展的信息 plist 中配置?
在 NSExtension 字典下,您应该添加一个名为 "NSExtensionMainStoryboard" 的键,该值应该是您的故事板的名称,即 - "MainInterface"
是否也可以设置在扩展程序中调用的断点?
所以我联系了 Apple 技术支持事件(很遗憾),他们建议我将 "NSExtensionMainStoryboard" 添加到广播 UI 扩展的 info.plist 类似于 Greg 的回答,当没有用我发送了我的代码,我们发现我还必须从阻止它加载的相同位置删除 "NSExtensionPrincipalClass" 键,之后它工作正常。