Ios RPPreviewViewController在播放后禁用音频

Ios RPPreviewViewController在播放后禁用音频,ios,swift,avaudiosession,replaykit,Ios,Swift,Avaudiosession,Replaykit,我在我的应用程序中使用replaykit,在用户录制完视频后,我会提供一个按钮来“共享”视频。我显示RPPreviewViewController,如果我在视频中单击播放,当我返回应用程序时,音频不起作用。只有当我返回到以前的viewController并返回到带有录制的控制器时,它才会再次工作 我的应用程序是一个音乐合成应用程序,所以音频非常重要。我甚至尝试在回放视图关闭后重置AVAudioSession类别,如下所示: func showPreview() { if let unwr

我在我的应用程序中使用replaykit,在用户录制完视频后,我会提供一个按钮来“共享”视频。我显示
RPPreviewViewController
,如果我在视频中单击播放,当我返回应用程序时,音频不起作用。只有当我返回到以前的
viewController
并返回到带有录制的控制器时,它才会再次工作

我的应用程序是一个音乐合成应用程序,所以音频非常重要。我甚至尝试在回放视图关闭后重置
AVAudioSession
类别,如下所示:

func showPreview() {
    if let unwrappedPreview = self.preview {
        unwrappedPreview.previewControllerDelegate = self
        self.present(unwrappedPreview, animated: true, completion: nil)
    } else {
        let alert = UIAlertController(title: "No recordings to share", message: "By hitting the play or record button you can record a video of your composition to share with others. Once you hit stop, the recording will be saved and ready to share.", preferredStyle: .alert)
        let okAction = UIAlertAction(title: "OK", style: .default, handler: nil)
        alert.addAction(okAction)
        self.present(alert, animated: true, completion: nil)
    }
}

func previewControllerDidFinish(_ previewController: RPPreviewViewController) {
    let audioSession = AVAudioSession.sharedInstance()
    try! audioSession.setCategory(AVAudioSessionCategoryPlayback)
    dismiss(animated: true)
}

不确定这是否有帮助,但只是发现了我们使用OalPlayback实现音效的问题。在显示预览控制器之前,我现在释放Oal对象,在取消预览之后,我创建一个新的对象

我使用ObjectAL,也发现了这个问题。我可以使用以下命令解决此问题:

OALAudioSession.sharedInstance().forceEndInterruption()

似乎没有结束中断。

我的解决方案与此类似。我们有一个播放MIDI的“合成器”对象,移除它并制作一个新的对象使其工作。不幸的是,这并不能真正解释发生了什么。这是一个相当时髦的控制器。我在断点处停了下来,甚至在应用程序显示时崩溃了,所有的控件都在工作。