ios - 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()
这是什么意思?
我应该担心这个警告吗?如果我正常移动瓷砖,则不会出现任何问题。
如果有的话,我该怎么办?
解决方案
我应该担心这个警告吗?如果有的话,我该怎么办?
我想没有,也没有。在 Apple 关于UIFeedbackGenerator https://developer.apple.com/documentation/uikit/uifeedbackgenerator的文档中,他们说您应该对此“信任系统”。
谈论以下方法impactOccurred()
:
请注意,调用这些方法不会直接播放触觉。相反,它会将事件通知系统。然后系统根据设备、应用程序的状态、剩余电池电量和其他因素确定是否播放触觉。
目前仅播放触觉反馈:
在支持 Taptic Engine 的设备上
当应用程序在前台运行时
启用系统触觉设置时
关于“信任系统”:
作为一般规则,信任系统来确定它是否应该播放反馈。不要检查设备类型或应用状态来有条件地触发反馈。在您决定如何使用反馈后,请始终在适当的事件发生时触发它。系统会忽略它无法满足的任何请求。
我希望这有帮助!
推荐阅读
- aws-lambda - 无法通过用户凭据访问 api 网关
- angular - 所有观察到的 NGXS 选择器是否都会在任何状态更改时执行?
- javascript - 在等待中使用外部函数并使用回调
- android - 如何在 5 分钟后停止通知 FLAG_INSISTENT?
- sql-server - MVC 项目中的 Rdlc 报告能够切换数据库
- c# - 用于员工树形视图的 JSON
- dart - 飞镖传播运算符说“如果它不为空,请将其放入列表中”
- python - 远程运行 cx_Oracle 查询时使用了哪台计算机的资源?
- laravel - Laravel 邮件 - 如何调试 Mailgun
- python - mac上奇怪的Python打印行为