16

我在我的第一个 iPhone 应用程序上实现了一个替代键盘。我想在按下按钮时播放声音。按下标准键盘时的默认点击声音会很好,但我不知道如何获得那种声音。

在这个答案中,我找到了如何播放“tock”声音:

在不导入自己的情况下播放系统声音

我让它很容易工作,但它是一个非常响亮的声音。我在 Stack Overflow 和 Xcode 帮助中搜索了“tock”以外的可用 iOS 系统声音,但我找不到它们。

是否有其他内置声音,甚至可能是默认键盘声音,我可以使用?

4

2 回答 2

18

在大约 2 周前发布这个问题之前和之后,我一直在寻找一种方法,让键盘点击声音在我的应用程序中正常工作。我试图实现和理解Apple 关于自定义输入视图的文档。我以多种方式扼杀了我的应用程序,试图让它工作并创建了几个测试项目。我试图从网络上的各种其他来源解释如何做到这一点。一切都无济于事。除了最后一个功能,我已经完成了我的应用程序。

我终于在这个 iPhone Dev SDK 表单问题/帖子的结尾找到了一个简单的答案。最终答案很简单,可以通过这些简单的步骤在几秒钟内完成。

  1. 将“AudioToolbox.framework”链接到您的项目(单击项目的 Target,选择“Build Phases”并在“Link Binary with Libraries”项下单击 + 按钮并添加框架。

  2. 将以下内容添加到要实现点击的类的头文件中:

     #import <AudioToolbox/AudioToolbox.h>
    
  3. 在类的实现文件中添加以下代码行,只要您希望键盘单击声音出现:

     AudioServicesPlaySystemSound(0x450);
    

而已!它成功了!哈利路亚!

根据 Paul 在另一个论坛中的说法,这有以下缺点:

“键盘按键不会受到 iOS 用户对键盘声音开/关的偏好的影响。”

但是,当我在 iPhone 上调高或调低音量时,或者如果我将 iPhone 静音,键盘咔嗒声确实会上下波动或按预期静音。鉴于我发现不可能按照记录实现键盘点击“UIInputViewAudioFeedback”,我很高兴有任何工作。

PS 如果有人有一个我可以下载、构建和运行在我的 iPhone 上的实际项目的链接,以确切了解如何正确实施:“UIInputViewAudioFeedback”我很乐意看看。但到目前为止,我还没有找到任何关于如何使其工作的分步新手风格说明。

[2012 年 9 月 30 日更新:]我很高兴地说,我的应用已使用此方法被应用商店接受。这是:https ://itunes.apple.com/app/fine-tip-tip-calculator/id563429225

...戴尔

于 2012-09-15T04:40:27.437 回答
7

试试看:UIDevice_playInputClick

[[UIDevice currentDevice] playInputClick];

从文档中:

使用此方法播放标准系统键盘点击以响应用户在自定义输入或键盘附件视图中的点击。只有当用户在“设置”>“声音”中启用了键盘点击,并且只有当输入视图本身启用并可见时,才会播放点击。

根据文档,确保UIInputViewAudioFeedback在输入视图类中采用协议,并实现enableInputClicksWhenVisiblereturn 的委托方法。YES

编辑- 对于委托方法的实现,请查看Apple 关于自定义输入视图的文档

于 2012-09-04T00:12:24.903 回答