如何在自定义键盘中播放键盘声音?
我已经创建了自定义键盘UIView
。 但是我没有听到键盘的咔嗒声。 所以我尝试了下面的代码。但我听不到任何东西。 如何播放键盘声音?如何在自定义键盘中播放键盘声音?
NSURL* musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:@"Tock"
ofType:@"aiff"]];
AVAudioPlayer *click = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
[click setVolume:0.15f];
[click play];
而且我还尝试了下一个。
AudioServicesPlaySystemSound(0x450);
我该怎么办?
试试这个:
[[UIDevice currentDevice] playInputClick];
注意
使用此方法来响应 在自定义的输入或键盘附件视图轻敲用户播放标准的系统键盘点击。 A 只有当用户在设置> 声音中启用了键盘单击并且仅当输入视图本身启用并可见时,才会播放。
要启用输入的点击自定义输入或附属视图,执行 以下两个步骤:
采用在输入视图类的UIInputViewAudioFeedback协议。 实现enableInputClicksWhenVisible委托方法返回 YES。
无法得到任何的这个工作,但是这个工作对我来说:
#import <AudioToolbox/AudioToolbox.h>
AudioServicesPlaySystemSound(1104);
但我仍不得不子类UIButton
和UIInputViewAudioFeedback
协议添加到它。
这工作。我甚至没有添加UIInputViewAudioFeedback协议。但它不尊重键盘咔嗒声的系统设置。我在iOS 11上。 – 2018-01-11 16:28:55
在Swift中,在输入视图中添加一个扩展名,如下所示:
extension UIInputView : UIInputViewAudioFeedback {
public var enableInputClicksWhenVisible: Bool {
return true
}
}
在操作方法为你的按钮调用下面的函数:
UIDevice.current.playInputClick()
以下属性添加到您的info.plist:
NSExtension | NSExtensionAttributes | RequestsOpenAccess = YES
即使我们禁用了来自“手机设置”的键盘声音,任何解决方案,它都会播放声音。 – 2017-08-04 05:31:19
正如我所记得的,它有效,但它是一个缓存问题。如果您在更改设置后重新启动设备,它将会生效。 – Litehouse 2017-09-21 17:40:05
我按照说明操作,但是,在我的键盘上没有点击声音。在系统键盘上点击声音。 – 2014-08-19 14:29:37