Ios RPPreviewViewController在播放后禁用音频
我在我的应用程序中使用replaykit,在用户录制完视频后,我会提供一个按钮来“共享”视频。我显示Ios RPPreviewViewController在播放后禁用音频,ios,swift,avaudiosession,replaykit,Ios,Swift,Avaudiosession,Replaykit,我在我的应用程序中使用replaykit,在用户录制完视频后,我会提供一个按钮来“共享”视频。我显示RPPreviewViewController,如果我在视频中单击播放,当我返回应用程序时,音频不起作用。只有当我返回到以前的viewController并返回到带有录制的控制器时,它才会再次工作 我的应用程序是一个音乐合成应用程序,所以音频非常重要。我甚至尝试在回放视图关闭后重置AVAudioSession类别,如下所示: func showPreview() { if let unwr
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的“合成器”对象,移除它并制作一个新的对象使其工作。不幸的是,这并不能真正解释发生了什么。这是一个相当时髦的控制器。我在断点处停了下来,甚至在应用程序显示时崩溃了,所有的控件都在工作。