Я смог сделать это, адаптировав ответ здесь к Swift.
Я делал это для предотвращения прерывания любого звука в моем приложении в моем обучающем видео. Установка категории AVAudioSession в "ambient" с помощью setCategory (_: mode: options :) метод , кажется, здесь ключ.
Apple , похоже, предлагает использовать этот метод в приложении метода 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)
}
}