首页 > 解决方案 > AVHapticPlayer async call finishWithCompletionHandler: (type=3) 30秒后没有得到回复

问题描述

问题

当用户移动一些图块时,我在我的应用程序中使用触觉反馈。当瓷砖移动得非常快,导致触觉反馈快速触发时,我在 30 秒后在控制台中收到以下警告:

在此处输入图像描述

2019-01-20 17:29:04.658240+0000 Loopover[17824:4937487] [反馈] AVHapticPlayer async call finishWithCompletionHandler: (type=3) 30 秒后没有得到回复(在此通知 0 mediaserverd 死亡时间)

触觉反馈是如何触发的?

我正在触发触觉反馈UIImpactFeedbackGenerator,如下所示:

UIImpactFeedbackGenerator(style: .light).impactOccurred()

这是什么意思?

我应该担心这个警告吗?如果我正常移动瓷砖,则不会出现任何问题。

如果有的话,我该怎么办?

标签: iosswifthaptic-feedbackuifeedbackgenerator

解决方案


我应该担心这个警告吗?如果有的话,我该怎么办?

我想没有,也没有。在 Apple 关于UIFeedbackGenerator https://developer.apple.com/documentation/uikit/uifeedbackgenerator的文档中,他们说您应该对此“信任系统”。

谈论以下方法impactOccurred()

请注意,调用这些方法不会直接播放触觉。相反,它会将事件通知系统。然后系统根据设备、应用程序的状态、剩余电池电量和其他因素确定是否播放触觉。

目前仅播放触觉反馈:

  • 在支持 Taptic Engine 的设备上

  • 当应用程序在前台运行时

  • 启用系统触觉设置时

关于“信任系统”:

作为一般规则,信任系统来确定它是否应该播放反馈。不要检查设备类型或应用状态来有条件地触发反馈。在您决定如何使用反馈后,请始终在适当的事件发生时触发它。系统会忽略它无法满足的任何请求。

我希望这有帮助!


推荐阅读