Я немного новичок в программировании на IOS, я пытаюсь запустить прямую трансляцию с помощью Replaykit, я добился определенного прогресса в вызове представления выбора службы вещания из приложения, а также в создании 2 расширений (загрузка вещания)Расширение и расширение Broadcast UI).Очевидно, что расширение Broadcast UI должно быть загружено после того, как расширение будет выбрано из представления выбора, а другое получает данные после начала трансляции. Сначала я попытался создать представление, создав раскадровку и присвоив ей собственный класс, такой жес расширением Broadcast UI, однако, когда я нажимаю на расширение в окне выбора, я сразу получаю ошибку The user declined application recording
(не уверен, что здесь пропущен какой-либо шаг), получаю эту же ошибку и без раскадровки, япопробовал print()
в override func viewDidLoad()
контроллера представления расширения Broadcast UI и не получил журналов в области отладки, так что я даже не знаю, загружается ли он вообще.
Мне нужно отобразить простойПользовательский интерфейс, который затем вызывает функцию контроллера представления расширенного пользовательского интерфейса (func userDidFinishSetup()
), которая затем начинает вещание.Я также приму, если трансляция может быть запущена непосредственно в приложении без пользовательского интерфейса, в Replaykit docs Я увидел функцию startBroadcast
, я думал, что может достичь этого, получил ошибку broadcastInvalidSession = -5808
, что означаетЯ «попытался начать трансляцию без предварительной сессии».Помощь очень признателен, спасибо.
Broadcast UI view controller
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)
}
}