问题标签 [haptic-feedback]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
103 浏览

ios - Core Haptics 和 Core Bluetooth 会干扰吗?

设置

我的 iOS 应用程序正在与 BLE 设备通信。作为对此通信中某些事件的响应,我想向用户提供触觉反馈。

为了支持像 iPhone 7 这样的旧手机,我决定使用UIFeedbackGenerator,专门UIImpactFeedbackGenerator用于此目的。

现在,当通过 BLE 接收所述事件时,我调用feedbackGenerator.impactOccurred().

行为

在通话时,不会发生触觉反馈。但是系统仍然会记住这些调用UIFeedbackGenerator

因为,当用户随后与 UI 元素交互时,所有调用都会立即feedbackGenerator.impactOccurred()触发,并且提供触觉反馈作为对该 UI 交互的响应。这让用户感到非常困惑,他们当时并没有预料到触觉反馈。此外,如果随着时间的推移积累了足够多的呼叫,触觉反馈可能会非常强烈。

当这些被遗忘的触觉反馈调用累积到足够多时,系统似乎就超载了。以下日志在控制台中生成了几十次:

CAReportingClient.mm:295:-[CAReportingClient init]_block_invoke:无法与帮助应用程序通信

无论如何,根据苹果文档,这可能是预期的行为UIFeedbackGenerator

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

我的问题

您是否有使用 Core Bluetooth 改变CoreHapticsor行为的经验UIFeedbackGenerator?这是我调试的起点,因为当我在本地模拟通信的所有部分时,触觉反馈工作得很好。

我已经尝试过的

  • UIFeedbackGenerator从主/后台线程调用
  • 使用UINotificationFeedbackGenerator代替UIImpactFeedbackGenerator
  • 提前打电话prepare()UIFeedbackGenerator
0 投票
1 回答
162 浏览

xcode - Watchkit:你如何要求一个没有声音的振动?

在 WatchKit 中,我调用:

... 手表会振动——但也有声音

怎么叫手表震动发出声音?

谢谢。

0 投票
0 回答
1214 浏览

ios - CHHapticEngine 未运行

经过一天的使用CHHapticEngine和自定义触觉模式,特别是使用 AHAP 文件(包括添加声音样本),我失去了 deivce / iPhone 中的声音和触觉。iPhone 恢复出厂设置后,设备中仍然没有触觉/声音(没有铃声、没有振动等)。当尝试启动触觉引擎并播放任何模式时,我可以在 Xcode 调试器中看到以下输出:

问题是,代码是否可能损坏硬件?

0 投票
0 回答
204 浏览

ios - 在 iPhone 7 Plus 上实现自定义触觉(具有不同的清晰度和强度)时遇到问题

我最近遇到了 Google 日历 iOS 应用程序,它在拖动或创建事件时提供了清晰但非常轻巧的触觉反馈。我正在尝试实现相同的功能。

我发现UIImpactFeedbackGenerator's 的.light影响对于我的要求来说仍然太强了。

经过一番挖掘,我发现CHHapticEngine了“核心触觉”库,该库在提供“锐度”和“强度”参数时支持自定义触觉。但似乎这CHHapticEngine在 iPhone 7 Plus 上不起作用,而谷歌以某种方式实现了这一点。

CHHapticEngine不工作?

1)CHHapticEngine.capabilitiesForHardware().supportsHaptics退货false

2)当我尝试在没有检查的情况下使用它时,它会返回:

(com.apple.CoreHaptics 错误 -4809。)

那么,是否有另一种方法可以生成自定义触觉(具有不同的清晰度和强度级别),在所有具有 Taptic Engine 的 iOS 设备上通用?蒂亚!

0 投票
1 回答
117 浏览

ios - Deinit UIImpactFeedbackGenerator

UIImpactFeedbackGeneratorTimeInterval=1.0. 几秒钟后,我调用deinitHapticFeedback(),如下所述并导航到下一个视图控制器,但反馈并没有停止,并且在新的 VC 出现后持续出现大约十秒钟。

(另外,我试着打电话deinitHapticFeedback()viewWillDisappear(_ animated: Bool)但同样的事情发生了。)

您对 a 的更优化 deinit 函数有任何想法UIFeedbackGenerator吗?

提前致谢!

0 投票
1 回答
250 浏览

ios - 如何在 UI 表视图单元中包含触觉功能

我有一个基本测验,其中 uitableview 呈现四个单元格。三个单元格有错误的答案,一个有正确的答案。我已经包含了警报,所以这会告诉用户他/她哪里不正确,哪里正确。

我还尝试包含一个触觉功能,但是当我在 iPhone 7 上运行该应用程序时,尽管 x 代码没有错误,但触觉功能不起作用。

0 投票
1 回答
24 浏览

ios - 带有 RIO 单元的触觉反馈

如果我将 AVAudioSession 配置为 .playAndRecord 类别并运行远程 IO 单元,那么在按钮按下时启用触觉反馈的最佳方法是什么?

0 投票
3 回答
161 浏览

ios - 无法运行 Apple 的 Haptic Sampler(来自 Apple 网站的示例项目)

我从这里下载了一个示例项目(触觉采样器),但由于几个问题我无法运行。我解决了签名标识符。

错误消息说:

  • ~/PlayingACustomHapticPatternFromAFile/HapticSampler/ViewController.swift:66:19:类型“CHHapticEngine.StoppedReason”没有成员“gameControllerDisconnect”

  • ~/PlayingACustomHapticPatternFromAFile/HapticSampler/ViewController.swift:68:19:类型“CHHapticEngine.StoppedReason”没有成员“engineDestroyed”

如果我删除这些部分,另一个错误说:

  • 线程 1:致命错误:在隐式展开可选值时意外发现 nil

这是我的问题。

  1. 你是否也会遇到同样的问题?

  2. 我该如何解决这个问题?

这是我的环境规范。

  • macOS Catalina 10.15.6
  • Xcode 11.6
  • iPhone 7 iOS 13.6

在此处输入图像描述

0 投票
1 回答
31 浏览

android - Android for iOS selectionChanged() 触觉的哪个等价物?

我一直在寻找selectionChanged()安卓。我在 android 上找到了一些常量,但没有为 'selectionChanged' 找到: https ://developer.android.com/reference/android/os/VibrationEffect

这是苹果文档: https ://developer.apple.com/documentation/uikit/uiselectionfeedbackgenerator/2374284-selectionchanged

哪个可能是 android 的等价物?

0 投票
1 回答
574 浏览

ios - 为什么 Core Haptics 不播放?(CHHapticPatternPlayer)

在我的物理设备 (iPhone XR) 上测试以下代码时,我没有遇到任何触觉输出。我关注了 Apple Developer 的“播放单击触觉模式”文章,并仔细检查了互联网上的其他各种文章,我确信我已经正确实现了它。此外,运行时没有发现任何错误。我的设备不输出触觉模式的原因可能是什么?

旁注:

  1. 我可以确认我的手机确实为其他应用程序产生了触觉,所以这似乎不是我的物理设备的问题。
  2. 我还单独实现了一个 AVAudioPlayer;我怀疑这会干扰,但我想我会提到它以防万一。

任何帮助将不胜感激 - 谢谢!