ReplayKit RPBroadcastingActivityViewController iPad

ReplayKit RPBroadcastingActivityViewController iPad,ipad,streaming,live,replaykit,Ipad,Streaming,Live,Replaykit,如何在iPad上显示RPBroadcastActivityViewController 我正在使用标准代码开始录制 RPBroadcastActivityViewController.load { [unowned self] (broadcastActivityViewController, error) in // If an error has occurred, display an alert to the user. if let error

如何在iPad上显示RPBroadcastActivityViewController

我正在使用标准代码开始录制

   RPBroadcastActivityViewController.load { [unowned self] (broadcastActivityViewController, error) in

        // If an error has occurred, display an alert to the user.
        if let error = error {
            self.showAlert(message: error.localizedDescription)
            return
        }

        // Present vc
        if let broadcastActivityViewController = broadcastActivityViewController {

            broadcastActivityViewController.delegate = self

            // present
            self.present(...
        }
    }
可以在iPhone上运行,但在iPad上没有显示任何内容,应用程序有点冻结。我一直在app store上查看使用此功能的游戏,我注意到了同样的问题

例如,在游戏塔Dash上,当按下iPad上的live stream按钮时,不会显示任何内容,它仅适用于iPhone

我一直在尝试播放popover演示文稿,但似乎没有任何效果

我错过什么了吗

更新:这似乎是一个bug。即使在苹果自己的Swift游乐场应用程序中,这种情况也会发生

更新2:苹果公司实际上回应了我的错误报告,并告诉我需要在iPad上以popover的形式呈现视图控制器,就像这样

  UIDevice.current.userInterfaceIdiom == .pad {
       broadcastAVC.popoverPresentationController?.sourceView = view
       broadcastAVC.popoverPresentationController?.sourceRect = CGRect(x: view.bounds.midX, y: view.bounds.midY, width: 0, height: 0)
       broadcastAVC.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.init(rawValue: 0) // no arrow
  }
然而,它对我仍然不起作用。正如我提到的,苹果自己的Swift游乐场应用程序会出现这种情况,所以这一定是一个bug

固定的:

我忘了在上面提到的代码中添加这一行

 broadcastAVC.modalPresentationStyle = .popover

iOS 10.1 beta 2仍然存在同样的问题

目前,我发现在iPad上展示
RPBroadcastActivityViewController
的唯一方法是在trait集合的水平紧凑环境中展示它


因此,在选择支持广播的应用程序之前,您可能需要告诉用户切换到“分割视图”模式,然后再切换回全屏模式。回到全屏后,您可以使用
RPBroadcastController.startBroadcast(handler:)
开始广播。

您是正确的,苹果的演示应用程序没有包括这个小细节,但它不是一个bug。这就是我用来让它在iPad上工作的方法。iPad需要popover来显示视图,popover需要锚定。我选择把它锚定在左翼巴布托教派

if let unwrappedPreview = preview {
            unwrappedPreview.previewControllerDelegate = self

            if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.phone {
                self.present(unwrappedPreview, animated: true, completion: nil)
            }
            else {
                unwrappedPreview.popoverPresentationController?.barButtonItem = self.navigationItem.leftBarButtonItem!
                unwrappedPreview.modalPresentationStyle = UIModalPresentationStyle.popover
                unwrappedPreview.preferredContentSize = CGSize(width: self.view.frame.width, height: self.view.frame.height)
                self.present(unwrappedPreview, animated: true, completion: nil)

            }
        }

你写错误报告了吗?是的,我写了。我认为这一定是一个错误,因为它发生在他们自己的swift游乐场应用程序中。还没有收到他们的回复(28411422),他们实际上在错误报告上给我回信了。他们说我需要将iPad上的view controller显示为弹出窗口,类似于在iPad上显示UIActivityController时必须执行的操作。我忘了添加这行代码…modalPresentationStyle=.popover.Hello!它真的在iOS 10.1上运行吗?我仍然有一些问题,它根本不起任何作用,我在调试器控制台(使用Xcode 10)中看到这个警告“viewServiceDidTerminateWithError”您能帮我吗?提前谢谢!谢谢你的回答。希望苹果能尽快修复。嘿,谢谢你的回答。知道为什么这对我不起作用吗?。我已经这样做了(见我问题的更新2),但它仍然不起作用。这与我在UIActivityController中使用的代码相同,并且在那里工作。修复。我忘了添加这行代码…modalPresentationStyle=.popover。谢谢你的帮助。