播放声音的 iOS 8 自定义键盘

Posted

技术标签:

【中文标题】播放声音的 iOS 8 自定义键盘【英文标题】:iOS 8 Custom Keyboard that play sounds 【发布时间】:2015-01-09 10:53:59 【问题描述】:

我正在尝试为 ios 8 构建一个自定义键盘,该键盘在按下某个键时会发出自定义播放声音。我正在使用AVAudioPlayer 和小型 mp3 文件。

这在模拟器中运行良好,但在真实设备上我听不到任何声音。

RequestOpenAccess 已启用。

请注意,我不是在尝试播放默认的键盘点击声音,而是自定义声音。大多数现有问题似乎与默认系统声音有关。

编辑:我也尝试过使用 .caf 和 .aiff 文件并使用 SystemSoundID 加载和播放它们。

【问题讨论】:

当您尝试播放声音时,控制台中是否有任何错误或警告? 不,没什么。它只是沉默。就像声音加载一样,但无法播放,因为应用冻结的时间与音频的长度大致相同。 如果应用程序冻结,您可以使用 Xcode Instruments(如 Time profiler)查看应用程序冻结的方法。 我们在这里需要更多信息 - 你可能有一些代码吗? 这是我在 BitBucket 上的小型测试项目的链接。它只是尝试为所有按钮播放相同的声音。 bitbucket.org/tfsjohan/phonetickeyboard/src 【参考方案1】:

这个 sn-p 在我的键盘项目中播放自定义声音。

NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"your_custom_sound" 
                                                      ofType:@"mp3"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath: soundPath], &soundID);
AudioServicesPlaySystemSound (soundID);

引用自:

How to play tock sound when tapping custom keyboard buttons

【讨论】:

性能没有问题。顺便说一下,我的项目中的声音文件大小是 8KB。【参考方案2】:

我很肯定这不是你的情况,但经常发生设备上的声音被关闭的情况。我犯了一个错误,搜索了一个小时为什么声音不起作用。如果只能这样,那将是一个快速的解决方案;)

【讨论】:

希望就这么简单。 :) 我什至确保我有内置键盘的默认点击声音,在这里就可以了。

以上是关于播放声音的 iOS 8 自定义键盘的主要内容,如果未能解决你的问题,请参考以下文章

在自定义数字键盘上的按键上点击播放声音

iOS 8 自定义键盘

设备上的 iOS 8 自定义键盘

iOS 8自定义键盘:更改高度

iOS 8 自定义键盘扩展 UIKeyboardType

使用 iOS 8 自定义键盘发送图像?