Звук не начинается, когда iPhone заблокирован (Swift) - PullRequest
0 голосов
/ 29 декабря 2018

Приложение должно запустить звук в определенное время.Чтобы выбрать конкретное время, я использовал локальные уведомления.Пришло определенное время, и приложение находится на переднем плане, звук запускается, и даже когда я закрываю приложение (фон) или блокирую свой iPhone, звук продолжает воспроизводиться.Все идет нормально.Теперь я хочу: наступило ли определенное время, и приложение уже находится в фоновом режиме, или iPhone заблокирован, он все равно должен запустить звук.Для этого я включил Background Modes, но ничего не изменилось.Я добавил mixWithOthers в свой код, но ничего не происходит.Любые другие советы?

import AVFoundation

var player: AVAudioPlayer?

func playSound() {
    guard let url = Bundle.main.url(forResource: "NameOfFile", withExtension: "mp3") else { return }

    do {
        try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, mode: .default, options: AVAudioSession.CategoryOptions.mixWithOthers)
        try AVAudioSession.sharedInstance().setActive(true)

        player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileType.mp3.rawValue)

        guard let player = player else { return }

        player.play()
        print("Start...")
    } catch let error {
        print(error.localizedDescription)
    }
}

Режимы фона: Снимок экрана .

Этот вопрос не является дубликатом.Я ищу решение для запуска звука, когда iPhone уже уже заблокирован / приложение находится на фоне до того, как звук начнется.Другой вопрос - продолжить аудио в фоновом режиме после start .

1 Ответ

0 голосов
/ 29 декабря 2018

Вы не можете делать то, что пытаетесь сделать.Если ваше приложение работает в фоновом режиме и прошло более 3 минут, ваше приложение будет приостановлено и не получит никакого процессорного времени.

Вы можете запланировать локальное уведомление.Когда он запускается, система может дополнительно воспроизводить звук, сохраненный в вашем комплекте приложений, или звук системного уведомления, а затем загорается экран и отображает уведомление с просьбой открыть ваше приложение.Вам не позвонят, пока пользователь не решит принять уведомление.

...