Aquí encontrará todos los códigos para cada .caf y categoría asociada: github.com/TUNER88/iOSSystemSoundsLibrary Por ejemplo, si desea una vibración más ligera, puede usar el código 1003.
¿Hay alguna manera de permitir que el teléfono vibre continuamente hasta que se presione un botón?
Nicholas
3
Lo que Nicholas preguntó, también me preguntaba si hay alguna manera de hacerlo vibrar en algún patrón especial.
Nathan McKaskle
1
Sé que hay un github que muestra las ID del sistema para todos los archivos de audio del iPhone y 3 de los archivos de vibración, pero ¿alguien sabe cómo puedo acceder a los OTROS archivos de vibración? Quiero usar la vibración Staccato, por ejemplo, pero no puedo averiguar la identificación, o incluso si hay una.
jammyman34
1
@Nicholas si encontré una aplicación que me pide que presione un botón, de lo contrario vibrará para siempre, la eliminaré de mi dispositivo de inmediato.
user3441734
2
Tenga en cuenta que el dispositivo no vibra si la sesión de audio de su aplicación está configurada con la categoría de sesión de audio AVAudioSessionCategoryPlayAndRecord o AVAudioSessionCategoryRecord. Esto asegura que la vibración no interfiera con la grabación de audio.
Fede Henze
70
En iOS 10 en iPhone 7 o 7 Plus, intente:
let generator =UIImpactFeedbackGenerator(style:.heavy)
generator.impactOccurred()
Simplemente inserte el código a continuación en su proyecto.
Uso
Vibration.success.vibrate()
Código fuente
enumVibration{case error
case success
case warning
case light
case medium
case heavy
@available(iOS13.0,*)case soft
@available(iOS13.0,*)case rigid
case selection
case oldSchool
publicfunc vibrate(){switchself{case.error:UINotificationFeedbackGenerator().notificationOccurred(.error)case.success:UINotificationFeedbackGenerator().notificationOccurred(.success)case.warning:UINotificationFeedbackGenerator().notificationOccurred(.warning)case.light:UIImpactFeedbackGenerator(style:.light).impactOccurred()case.medium:UIImpactFeedbackGenerator(style:.medium).impactOccurred()case.heavy:UIImpactFeedbackGenerator(style:.heavy).impactOccurred()case.soft:if#available(iOS13.0,*){UIImpactFeedbackGenerator(style:.soft).impactOccurred()}case.rigid:if#available(iOS13.0,*){UIImpactFeedbackGenerator(style:.rigid).impactOccurred()}case.selection:UISelectionFeedbackGenerator().selectionChanged()case.oldSchool:AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))}}}
No olvide agregar 'importar AVFoundation' para usar la vibración .oldSchool :)
atereshkov
Excepto que los casos restantes de .oldSchool no funcionan. Probé en el dispositivo físico iPhone 6. ¿Alguna ayuda?
Sai kumar Reddy
Debe explicar que FeedbackGenerator es háptico y viene con el iPhone 7. También puede tener solo una línea en cada caso: UIImpactFeedbackGenerator (estilo: .heavy) .impactOccurred ()
Compra final de código abierto Haptica , es compatible tanto Haptic Feedback, AudioServicesy los patrones de vibraciones únicas. Funciona en Swift 4.2, Xcode 10
UINotificationFeedbackGenerator disponible desde iOS 10 y funciona con Haptic v2, podemos comprobar esto:
let feedbackSupportLevel =UIDevice.current.value(forKey:"_feedbackSupportLevel")as?Intif#available(iOS10.0,*),let feedbackSupportLevel = feedbackSupportLevel, feedbackSupportLevel >1{do{// 1
let generator =UIImpactFeedbackGenerator(style:.medium)
generator.impactOccurred()}do{// or 2
let generator =UINotificationFeedbackGenerator()
generator.notificationOccurred(.success)}}else{AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))}
Respuestas:
Ejemplo corto:
cárguelo en su teléfono y vibrará. Puedes ponerlo en una función o IBAction como desees.
Actualización de código:
Como están escritos los documentos de código de Apple:
NOTA: Si vibrar no funciona. comprobar que la vibración esté habilitada en la configuración de sonidos y hápticos
fuente
En iOS 10 en iPhone 7 o 7 Plus, intente:
fuente
Otros tipos de vibraciones:
Más sobre vibración: http://www.mikitamanko.com/blog/2017/01/29/haptic-feedback-with-uifeedbackgenerator/
fuente
Swift 4.2 actualizado
Simplemente inserte el código a continuación en su proyecto.
Uso
Código fuente
fuente
Para iOS 10.0+ puede probar UIFeedbackGenerator
ViewController simple arriba, simplemente reemplace su controlador de vista en su "aplicación de vista única" de prueba
fuente
Podemos hacer esto en Xcode7.1
fuente
Swift 4.2, 5.0
También puedes elegir otros estilos como
fuente
Puede hacer vibrar el teléfono usando
AudioServices
oHaptic Feedback
.Compra final de código abierto Haptica , es compatible tanto
Haptic Feedback
,AudioServices
y los patrones de vibraciones únicas. Funciona en Swift 4.2, Xcode 10fuente
Ahora puede llamar
UIDevice.vibrate()
cuando sea necesario.fuente
UINotificationFeedbackGenerator disponible desde iOS 10 y funciona con Haptic v2, podemos comprobar esto:
fuente
fuente
AudioServicesPlaySystemSound
lugar de la respuesta principalAudioServicesPlayAlertSound
.