Как воспроизводить звук нажатия клавиш на пользовательской клавиатуре?
Я создал пользовательскую клавиатуру с 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);
Как я могу?
Ответы
Ответ 1
Попробуйте следующее:
[[UIDevice currentDevice] playInputClick];
Обратите внимание, что
Используйте этот метод для воспроизведения стандартной системной клавиатуры, нажатой в ответ к пользователю, нажав на пользовательский вход или вид аксессуаров клавиатуры. нажмите кнопку воспроизведения только в том случае, если пользователь включил нажатия клавиш в настройках > Звучит, и только если вид ввода сам включен и виден.
Чтобы включить пользовательский ввод или дополнительный вид для входных кликов, выполните следующие два шага:
Принять протокол UIInputViewAudioFeedback в классе ввода. Внедрите метод enableInputClicksWhenVisible delegate для возврата ДА.
Ответ 2
Не удалось заставить это работать, но это сработало для меня:
#import <AudioToolbox/AudioToolbox.h>
AudioServicesPlaySystemSound(1104);
Но все же мне пришлось подклассифицировать UIButton
и добавить к нему протокол UIInputViewAudioFeedback
.
Ответ 3
В Swift добавьте расширение для представления ввода следующим образом:
extension UIInputView : UIInputViewAudioFeedback {
public var enableInputClicksWhenVisible: Bool {
return true
}
}
В методе действий для ваших кнопок вызывается следующая функция:
UIDevice.current.playInputClick()
Добавьте в свой info.plist следующее свойство:
NSExtension | NSExtensionAttributes | RequestsOpenAccess = YES