如何防止使用AVFoundation录制的视频中断当前正在播放的任何全局音频(Swift)?

时间:2019-01-02 16:32:43

标签: ios avfoundation avaudiosession

我已经在我的应用程序中成功实现了有效且有效的AVFoundation视频录制功能。也就是说,任何正在播放的音频,例如每当开始录制视频时,Apple Music或在后台播放的YouTube视频都会被中断/立即暂停。

我的问题是:录制视频时如何允许全球播放的音频继续播放而不会中断?

1 个答案:

答案 0 :(得分:0)

我能够通过将答案here改编成Swift来做到这一点。

我这样做是为了防止我的应用中的无声教程视频中断任何当前正在播放的音频。使用setCategory(_:mode:options:) method将AVAudioSession类别设置为“环境”似乎是关键。

Apple seems to suggest在应用程序didFinishLaunchingWithOptions方法中使用此方法,但是我认为他们的示例针对音频应用程序。因此,根据您的需要,您可能希望将其放置在那里。

这是经过修改的代码,我将其放在显示视频的视图控制器中:

import AVFoundation

...

override func viewDidLoad() {
    super.viewDidLoad()

    let audioSession = AVAudioSession.sharedInstance()
    do {
        try audioSession.setCategory(.ambient, mode: .default, options: .mixWithOthers)
    } catch {
        print(error.localizedDescription)
    }
}