如何 "Cancel" AVAudioSession 转至另一个视图控制器?

How To "Cancel" AVAudioSession on segue to another view controller?

我正在创建一个带有标签栏控制器的录音应用程序。我使用具有适当会话的 AVAudioRecorder 创建了一个 RecordingView,并且 URL 使用 segue 标识符将录音传递给另一个视图控制器。

我遇到的问题是处理用户在完成录制会话之前切换标签栏视图的情况。理想情况下,我想取消会话,这样当他们返回到录制视图时,一切都像新的一样。 Here is the code I used to pass the URL to another view.

我考虑过只在没有标签栏的视图中打开记录器,这样用户将不得不使用取消按钮离开视图,但这是一个很好的学习体验。我知道这是一个简单的修复,但出于某种原因我无法弄清楚。在此先感谢您提供的所有帮助:D

您可以在 RecordingViewController 中的 viewWillDisappearviewDidDisappear 方法中停止录制。当用户选择另一个选项卡时将调用这些方法。

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    // Stop your recording session here.
}