Как играть в SystemSound, когда приложение ios находится в фоновом режиме, используя SwiftUI - PullRequest
0 голосов
/ 30 марта 2020

У меня есть следующий тестовый код, хорошо работающий на переднем плане:

struct ContentView: View {

let timer = Timer.TimerPublisher(interval: 1.0, tolerance: 1.0, runLoop: .main, mode: .default)
let future10 = Date().addingTimeInterval(10)

var body: some View {
    Text("10 beeps, 10 seconds from now")
        .onReceive(self.timer) { _ in
            let diff = abs(Date().timeIntervalSince(self.future10))
            if diff <= 5 {
                AudioServicesPlaySystemSound(1205)
            }
    }.onAppear(perform: {self.timer.connect()})
}
}

Я установил целевое приложение с помощью «Фоновые режимы» -> «Аудио, трансляция и картинка в картинке»

Но я не слышу звук после закрытия приложения. Таймер продолжает работать, но звука нет.

1 Ответ

0 голосов
/ 30 марта 2020

Если вы закрываете свое приложение, оно стирается из памяти и, следовательно, не может выполнить его код.

В документации Apple говорится, что:

Если эта функция включена, звук вашего приложения может продолжаться, когда пользователи переключаются на другое приложение или блокируют свои устройства iOS.

https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/creating_a_basic_video_player_ios_and_tvos/enabling_background_audio

В них явно не упоминается, что приложение может воспроизводить звук при удалении приложения из памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...