Apple Siri Intent останавливает воспроизведение без видимой причины - PullRequest
0 голосов
/ 02 ноября 2018

Я бы хотел улучшить интеграцию моего приложения FM-Pod с ярлыками Siri намерений. Я сделал это приложение для прослушивания радио на HomePod и на данный момент мне удалось запустить воспроизведение, изменить станции и т. Д., Но я столкнулся со странной проблемой, которая приводит к остановке воспроизведения аудио одна через 1 минуту ...

Кто-нибудь знает причину? Что не так?

Вот код в Swift для запуска воспроизведения, использующий AVAudioPlayer:

open func handle(intent: StartFMPodIntent, completion: @escaping (StartFMPodIntentResponse) -> Void) {

    DataManager.getStationDataWithSuccess(filename: "favorites") { (data) in
        if debug { print("Stations JSON Found") }
        guard let data = data, let jsonDictionary = try? JSONDecoder().decode([String: [RadioStation]].self, from: data), let stationsArray = jsonDictionary["station"]
            else {
                if debug { print("JSON Station Loading Error") }
                return
        }
            HPRIntentHandler.stations = stationsArray
            if !FRadioPlayer.shared.isPlaying {
                FRadioPlayer.shared.radioURL = URL(string: HPRIntentHandler.stations![0].streamURL0!)
                let response = StartFMPodIntentResponse(code: .success, userActivity: nil)
                response.stationName = stationsArray[0].name
                completion(response)
            }


    }
}

1 Ответ

0 голосов
/ 02 ноября 2018

Согласно https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/ExtensionOverview.html#//apple_ref/doc/uid/TP40014214-CH2-SW2

Расширение прекращается после завершения выполнения кода. Так как getStationDataWithSuccess запускается в асинхронном режиме, его код достигает конца до завершения работы асинхронной функции. Вы должны найти другое место, чтобы справиться с этим.

...