Как я могу предотвратить запись видео с помощью AVFoundation от прерывания любого глобального звука, который воспроизводится в данный момент (Swift)? - PullRequest
0 голосов
/ 02 января 2019

Я успешно внедрил в свое приложение действующую и работающую функцию видеозаписи AVFoundation.Тем не менее, любое воспроизводимое аудио, например Apple Music или видео YouTube, воспроизводимое в фоновом режиме, прерывается / немедленно приостанавливается всякий раз, когда начинается запись видео.

Мой вопрос: как я могу разрешить воспроизведению глобально воспроизводимого аудио продолжатьиграть без перерыва при записи видео?

1 Ответ

0 голосов
/ 02 февраля 2019

Я смог сделать это, адаптировав ответ здесь к 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)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...