小编Rob*_*Rob的帖子

如果连接了硬件键盘,则隐藏inputAccessoryView

与此问题类似:iPad:检测外部键盘,我正在开发一个iPad应用程序,它使用带有自定义的文本字段inputAccessoryView来为虚拟键盘提供附加功能.

但是,如果硬件键盘(例如蓝牙键盘)连接到设备,则软件键盘未按预期显示,但由于某种原因,inputAccessoryView 仍在屏幕底部可见.此外,这似乎导致触发UIKeyboardDidShowNotification(并因此移动我的视图以避免键盘实际上不存在的遮挡),即使硬件键盘用于输入.

我找到了几种解决方案来检测是否连接了硬件键盘,但是所有这些解决方案都接收到检查状态UIKeyboardDidShowNotification,此时inputAccessoryView已经可见(例如,我如何检测iPad上是否有外接键盘?).

我正在寻找一种方法,如果没有连接硬件键盘,只显示inputAccessoryView.因此,我需要知道,如果一个硬件键盘连接之前,一个UIKeyboardDidShowNotification被解雇了.

此处提供的已接受解决方案如何检测iPad上是否存在外接键盘?对我来说没有选择,因为他们使用私有API可能会导致我的应用被拒绝.

keyboard ios

6
推荐指数
1
解决办法
2926
查看次数

使用 AudioKit 测量(频率加权)声级

我正在尝试使用 AudioKit 为 iOS 实现 SLM 应用程序。因此,我需要确定不同的响度值以 a) 显示当前响度(平均超过一秒)和 b)做进一步的计算(例如计算更长的时间跨度内的“等效连续声级”)。该应用程序应该能够跟踪频率加权分贝值,如 dB(A) 和 dB(C)。

我确实理解我面临的一些问题与我在信号和音频处理领域普遍缺乏了解有关。我的问题是如何使用 AudioKit 来完成这项任务。我将描述我当前的流程并希望获得一些意见:

  1. 在此麦克风上创建AKMicrophone和 a的实例AKFrequencyTracker
  2. 创建一个Timer具有一定间隔的实例(当前1/48_000.0
  3. 在计时器内部:检索amplitudefrequency。根据振幅计算分贝值20 * log10(amplitude) + calibrationOffset(校准偏移将在专业 SLM 的帮助下确定每个设备型号)。根据频率加权(A 和 C)计算检索到的频率的偏移,并将这些应用于初始 dB 值。将 dB、dB(A) 和 dB(C) 值存储在一个数组中。
  4. 计算给定时间范围内数组的平均值(1 秒)。

我在其他地方读到使用计时器这不是最好的方法。还有什么可以用于“采样”?究竟是什么frequencyAKFrequencyTracker?这个频率是否足以确定 dB(A) 和 dB(C) 值,还是我需要一个AKFFTTap?如何从AKFrequencyTracker平均值中检索值,即 RMS 使用什么时间范围?

可能相关的问题:在 swift 中从 AudioKit 获取 dB(a) 级别AudioKit FFT 转换为 dB?

iphone audio-recording ios swift audiokit

5
推荐指数
0
解决办法
822
查看次数

标签 统计

ios ×2

audio-recording ×1

audiokit ×1

iphone ×1

keyboard ×1

swift ×1