Чтобы iPhone не переходил в спящий режим в Swift, вы можете использовать различные методы. Вот несколько вариантов:
- Отключить автоматическую блокировку. Вы можете отключить функцию автоматической блокировки на iPhone, которая контролирует режим сна устройства. Этого можно добиться путем программной настройки параметров устройства с помощью свойства
UIApplication.shared.isIdleTimerDisabled.
UIApplication.shared.isIdleTimerDisabled = true
- Используйте подход на основе таймера. Вы можете создать таймер, который периодически сбрасывается, чтобы предотвратить переход устройства в спящий режим. Это можно сделать с помощью класса
Timerв Swift.
Timer.scheduledTimer(withTimeInterval: 30, repeats: true) { timer in
UIApplication.shared.isIdleTimerDisabled = true
}
- Воспроизведение беззвучного аудио. Постоянное воспроизведение беззвучного аудиофайла может заставить устройство бодрствовать. Этого можно добиться, используя платформу
AVFoundationдля воспроизведения аудиофайла без звука.
import AVFoundation
try? AVAudioSession.sharedInstance().setCategory(.playback)
try? AVAudioSession.sharedInstance().setActive(true)
let player = try? AVAudioPlayer(contentsOf: URL(fileURLWithPath: Bundle.main.path(forResource: "silence", ofType: "mp3")!))
player?.numberOfLoops = -1
player?.play()
Не забудьте добавить в проект беззвучный аудиофайл с именем «silence.mp3».