gpt4 book ai didi

ios - Siri 快捷方式 INPlayMediaIntent 在 2 分钟后停止播放

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:20:47 26 4
gpt4 key购买 nike

我正在将我们的音乐服务应用程序与新的快捷方式功能集成在一起,并且遇到了奇怪的 SiriKit 扩展行为。我的 INPlayMediaIntentHandling 实现下载音乐轨道并开始使用 AVPlayer 播放它们,但扩展在每次启动 120 秒后以代码 0 退出(Xcode 控制台显示“程序以退出代码结束:0”)。我尝试搜索,但 Apple 文档在这个主题上是空的,2018 WWDC session 只有关于这个 Intent 的简短信息。

GitHub 上有一个示例 — https://github.com/beryu/SiriShortcutsSample但它使用 Apple Music 30 秒样本。我尝试将它与长 mp3 流一起使用,但它的行为与我的应用程序一样,并在 2 分钟后停止。

有人成功实现过 INPPlayMediaIntent 吗?

IntentHandler代码

class IntentHandler: INExtension, INPlayMediaIntentHandling {

private var intentCompletion: Any?

@available(iOSApplicationExtension 12.0, *)
func handle(intent: INPlayMediaIntent, completion: @escaping (INPlayMediaIntentResponse) -> Void) {

intentCompletion = completion
switch intent.mediaContainer?.identifier {
case ShortcutsMeta.FavouritesIdentifier: startFavourites()

default: complete(.success);
}
}

@available(iOSApplicationExtension 12.0, *)
private func complete(_ resultCode: INPlayMediaIntentResponseCode) {
let userActivity = NSUserActivity(activityType: NSStringFromClass(INPlayMediaIntent.self))
let response = INPlayMediaIntentResponse(code: resultCode, userActivity: userActivity)
(intentCompletion as? ((INPlayMediaIntentResponse) -> Void))?(response)
intentCompletion = nil
}

override func handler(for intent: INIntent) -> Any {
return self
}

private func startFavourites() {
let command = IntentCommand(type: .favourites)
// this code loads track and calls AVPlayer to play it, then calls completion
command.run{ [weak self] (result: Bool) in
if #available(iOSApplicationExtension 12.0, *) {
self?.complete(result ? .success : .failure)
}
}
}

最佳答案

我与一位 Apple 工程师交谈过,他说 INPlayMediaIntentHandling 只能与 .handleInApp 意图响应结果代码一起使用。因此,我在应用程序主要目标中移动了意图处理程序逻辑,并通过 AppDelegate 的 -application:handleIntent:completionHandler 调用它:

一切正常,除了 Siri 的 AudioSession 中断——她在开始后立即停止了我的媒体播放逻辑。 Apple 的那位工程师说这是一个 iOS 错误,Apple 正在修复错误(也许在 12.1 他们修复了它,我还没有检查)

关于ios - Siri 快捷方式 INPlayMediaIntent 在 2 分钟后停止播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52606637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com