点击自定义键盘按钮时如何播放tock声音

Eva*_*Chu 6 keyboard audio ios ios8 ios-app-extension

我一直在为iOS 8定制键盘工作一段时间,到目前为止一切都很顺利,但我仍然无法理解这种敲击声音.

我搜索了这个问题的高低,并尝试了几种方法,包括

  1. 使用AudioToolbox
  2. 使用AVFoundation
  3. 将tock.caf放入我的捆绑包中然后播放它

其中一些在模拟器中工作,但它们都不能在我的设备中工作.任何在点击自定义键盘按钮时成功播放声音的人都可以分享一些工作代码吗?如果代码可以遵守声音设置,那就是最好的.

Ezi*_*met 15

正如Farzad Nazifi Allow openAcesess在全新安装后提到的那样,解决了我的问题.我推荐一个更简单的解决方案playing system keyboard tap sound

Swift和Objective-C所有相同的 `我们不需要导入任何自定义声音文件只是播放系统敲击声.

导入AudioToolbox框架:

#import <AudioToolbox/AudioToolbox.h>

AudioServicesPlaySystemSound(1104)
Run Code Online (Sandbox Code Playgroud)

此代码在iOS 8 beta 5中进行了测试,我希望苹果能够修复GM版本中的错误(如果它是一个bug).


Jas*_*per 8

导入框架:

#import <AudioToolbox/AudioToolbox.h>
Run Code Online (Sandbox Code Playgroud)

并使用:

AudioServicesPlaySystemSound(1104);
Run Code Online (Sandbox Code Playgroud)


Eva*_*Chu 7

最后我得到了其他SO 线程的答案.

- (void)playSound
{
    NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"Tock" ofType:@"caf"];
    SystemSoundID soundID;
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath: soundPath], &soundID);
    AudioServicesPlaySystemSound (soundID);
}
Run Code Online (Sandbox Code Playgroud)

我已经实现并验证了这种方法适用于iOS8 Beta 2上的模拟器和设备.

  • 在物理设备中,当我按下键时它会滞后. (4认同)