我使用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);
我该怎么办?
答案 0 :(得分:35)
试试这个:
[[UIDevice currentDevice] playInputClick];
请注意
使用此方法播放标准系统键盘响应 用户点击自定义输入或键盘配件视图。一个 只有当用户在“设置”>中启用了键盘点击时,才会点击播放 声音,并且仅当输入视图本身已启用且可见时。
要为输入点击启用自定义输入或附件视图,请执行 以下两个步骤:
在输入视图类中采用UIInputViewAudioFeedback协议。 实现enableInputClicksWhenVisible委托方法返回 YES。
答案 1 :(得分:5)
无法使这些工作,但这对我有用:
#import <AudioToolbox/AudioToolbox.h>
AudioServicesPlaySystemSound(1104);
但我仍然必须继承UIButton
并将UIInputViewAudioFeedback
协议添加到其中。
答案 2 :(得分:3)
在Swift中为输入视图添加一个扩展名,如下所示;
extension UIInputView : UIInputViewAudioFeedback {
public var enableInputClicksWhenVisible: Bool {
return true
}
}
在按钮的操作方法中,调用以下函数:
UIDevice.current.playInputClick()
将以下属性添加到info.plist:
NSExtension | NSExtensionAttributes | RequestsOpenAccess = YES
答案 3 :(得分:0)
对于 swift 来说,实际上有一种非常简单的方法来播放键盘音效。
首先:
import AudioToolbox
然后在需要音效时使用它。
AudioServicesPlaySystemSound(0x450)