如何在自定义键盘中播放键盘单击声音



我用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];

请注意,

使用此方法播放标准系统键盘单击作为响应 用户点击自定义输入或键盘附件视图。一个 单击"仅当用户在设置"中启用了键盘单击时播放> 声音,并且仅当输入视图本身已启用且可见时。

要为输入单击启用自定义输入或附件视图,请执行 以下两个步骤:

在输入视图类中采用 UIInputViewAudioFeedback 协议。 实现启用输入点击时可见委托方法以返回 是的。

无法让任何这些工作,但这对我有用:

#import <AudioToolbox/AudioToolbox.h>
AudioServicesPlaySystemSound(1104);

但我仍然不得不对UIButton进行子类化,并将UIInputViewAudioFeedback协议添加到其中。

在 Swift 中,向输入视图添加一个扩展,如下所示;

extension UIInputView : UIInputViewAudioFeedback {
    public var enableInputClicksWhenVisible: Bool {
        return true
    }
}

在按钮的操作方法中,调用以下函数:

    UIDevice.current.playInputClick()

将以下属性添加到 info.plist:

NSExtensency |NSEx张力属性 |请求打开访问 = 是

对于 swift 来说,实际上有一种非常简单的方法来播放键盘音效。

第一:

import AudioToolbox

然后在需要音效时使用它。

AudioServicesPlaySystemSound(0x450)

最新更新