AVHapticPlayer асинхронный вызов finishWithCompletionHandler: (type = 3) не получил ответ через 30 секунд - PullRequest
0 голосов
/ 20 января 2019

Задача

Я использую Haptic Feedback в моем приложении, когда пользователь перемещает некоторые плитки. Когда плитки перемещаются очень быстро, что приводит к быстрому срабатыванию тактильной обратной связи, через 30 секунд я получаю это предупреждение в консоли:

enter image description here

2019-01-20 17: 29: 04.658240 + 0000 Loopover [17824: 4937487] [Feedback] Асинхронный вызов AVHapticPlayer finishWithCompletionHandler: (type = 3) не получил ответ через 30 секунд (уведомление о смерти 0 MediaServer (s) ) в это время)

Как срабатывает хаптическая обратная связь?

Я запускаю тактильную обратную связь, используя UIImpactFeedbackGenerator, как показано:

UIImpactFeedbackGenerator(style: .light).impactOccurred()

Что это значит?

Это предупреждение меня должно волновать? Если я перемещу плитки нормально, никаких проблем не возникает.

Что мне делать, если что?

1 Ответ

0 голосов
/ 20 января 2019

Это предупреждение меня должно волновать? Что мне делать, если что?

Наверное, нет, и нет. В документе Apple о UIFeedbackGenerator https://developer.apple.com/documentation/uikit/uifeedbackgenerator, говорится, что вы должны "доверять системе" по этому поводу.

Говоря о таких методах, как impactOccurred():

Обратите внимание, что вызов этих методов напрямую не влияет на тактику. Вместо этого он информирует систему о событии. Система тогда определяет, играть ли на гаптике на основе устройства, состояние приложения, количество оставшегося заряда батареи и др. факторы.

В настоящее время воспроизводится только хаптическая обратная связь:

  • На устройстве с поддерживаемым Taptic Engine

  • Когда приложение работает на переднем плане

  • Когда включена настройка System Haptics

А по поводу "Доверяй системе":

Как правило, доверяйте системе, чтобы определить, должна ли она Воспроизвести отзыв. Не проверяйте тип устройства или состояние приложения, чтобы условно вызвать обратную связь. После того, как вы решили, как вы хотите используйте обратную связь, всегда запускайте ее, когда происходят соответствующие события. система игнорирует любые запросы, которые она не может выполнить.

Надеюсь, это поможет!

...