teclado swiftkey sonidos sonido personalizar para gboard descargar como cambiar ios objective-c cocoa-touch custom-keyboard

ios - swiftkey - ¿Cómo se reproduce el sonido del clic del teclado en el teclado personalizado?



sonidos para el teclado de pc (3)

En Swift, agregue una extensión a la vista de entrada de la siguiente manera;

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

En el método de acción para sus botones llame a la siguiente función:

UIDevice.current.playInputClick()

Agregue la siguiente propiedad a su info.plist:

NSExtension | NSExtensionAttributes | RequestsOpenAccess = YES

Había creado un teclado personalizado con UIView . Sin embargo no escuché el clic del teclado. Así que intenté seguir los códigos. Pero no puedo escuchar nada. ¿Cómo puedo reproducir el sonido de clic del teclado?

NSURL* musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Tock" ofType:@"aiff"]]; AVAudioPlayer *click = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil]; [click setVolume:0.15f]; [click play];

Y también probé el siguiente.

AudioServicesPlaySystemSound(0x450);

¿Cómo puedo?


No pude hacer que nada de esto funcionara, pero esto funcionó para mí:

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

Pero aún así tuve que subclasificar un UIButton y agregarle el protocolo UIInputViewAudioFeedback .


Prueba esto:

[[UIDevice currentDevice] playInputClick];

Tenga en cuenta que

Use este método para tocar el teclado estándar del sistema en respuesta a un toque del usuario en una entrada personalizada o en una vista de accesorios del teclado. Un clic se reproduce solo si el usuario ha habilitado los clics del teclado en Configuración> Sonidos, y solo si la vista de entrada está habilitada y es visible.

Para habilitar una entrada personalizada o una vista de accesorios para los clics de entrada, realice los siguientes dos pasos:

Adopte el protocolo UIInputViewAudioFeedback en su clase de vista de entrada. Implemente el método de delegado enableInputClicksWhenVisible para devolver YES.