在自定义键盘扩展中播放标准 iOS 键盘点击声音
Posted
技术标签:
【中文标题】在自定义键盘扩展中播放标准 iOS 键盘点击声音【英文标题】:Play standard iOS keyboard click sound in Custom Keyboard Extension 【发布时间】:2014-07-10 04:42:04 【问题描述】:我想知道 ios 8 中是否有新的 API 可以让您在键盘扩展中播放标准的键盘点击声音 - 并且只有在启用键盘点击且设备未处于静音状态时才播放它。我没有见过这样的API,也没有看到任何关于这个的问题。
我确实知道在以前的 iOS 版本中,如果您实现了自定义输入或键盘附件视图(通过 [[UIDevice currentDevice] playInputClick];
在您采用 UIInputViewAudioFeedback
协议并在 enableInputClicksWhenVisible
中返回 YES
),这是可能的。这只有在那些情况下才有可能。键盘扩展不是这些。
是否可以使用自定义 iOS 键盘播放输入点击?
请注意,this question 是相关的,但他们想要自定义声音,并且该解决方案不会尊重用户对播放键盘点击的偏好 - 即使该选项已被禁用,也会始终播放它们。
【问题讨论】:
***.com/a/10299080/2446155怎么样 @Joey 你找到解决方案了吗?我也很想知道这个。 @Sabo 我没有。我向 Apple 发送了增强请求。目前似乎无法做到这一点(测试版 4)。 @Joey 这个问题有什么进展吗?不能让它工作。 请注意,我的问题是如何在设置中支持用户偏好的同时实现它。我所看到的一切都不会尊重该设置,并且会一直播放。 【参考方案1】:随便用
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
^
AudioServicesPlaySystemSound(1104);
);
问题是,启用完全访问时,会播放声音,如果没有,因为它的调用是在后台线程中,不会阻塞主线程
【讨论】:
只是好奇如何获取各种声音 ID? 保存好了,我在商店里贴了一个键盘 这确实会播放声音,但即使用户在设置中禁用了键盘点击,它也会一直播放。他们肯定不明白这一点。 注意 Apple 对这种方法的警告:“这不是受支持的 API。第三方不应调用第一方系统声音。” 浪费了太多时间不为 SO 做贡献。鉴于答案有 Joey 概述的问题,我想唯一的方法是通过键盘容器应用程序的开关来使用它。我找不到更好的答案。以上是关于在自定义键盘扩展中播放标准 iOS 键盘点击声音的主要内容,如果未能解决你的问题,请参考以下文章