RPPreviewViewController在播放后禁用音频

时间:2017-01-10 01:10:36

标签: ios swift avaudiosession replaykit

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

OALAudioSession.sharedInstance().forceEndInterruption()

似乎replayKit没有结束中断。