1

我在我的应用程序中使用 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)
}
4

2 回答 2

1

不确定这是否有任何帮助,但刚刚发现我们的问题,我们使用 OalPlayback 进行音效。在显示预览控制器之前,我现在释放 Oal 对象,并在关闭预览后创建一个新对象。

于 2017-01-24T20:16:38.803 回答
0

我使用 ObjectAL 也发现了这个问题。我能够通过使用以下命令来解决它:

OALAudioSession.sharedInstance().forceEndInterruption()

似乎 replayKit 没有结束中断。

于 2017-02-27T02:51:44.997 回答