Apple Siri Intent会在没有明显原因的情况下停止播放

时间:2018-11-02 13:43:52

标签: ios swift avaudioplayer siri sirishortcuts

我想改善我的App FM-Pod与Siri Intents快捷方式的集成。我已经完成了此应用程序的操作,可以在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 :(得分:0)

根据https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/ExtensionOverview.html#//apple_ref/doc/uid/TP40014214-CH2-SW2

代码完成运行后,扩展将被杀死。 由于getStationDataWithSuccess异步运行,因此其代码在异步功能完成运行之前到达末尾。 您必须找到其他地方来处理此问题。