Aqui você encontrará todos os códigos para cada .caf e categoria associada: github.com/TUNER88/iOSSystemSoundsLibrary Por exemplo, se você quiser uma vibração mais leve, pode usar o código 1003.
existe uma maneira de deixar o telefone vibrar continuamente até que um botão seja pressionado?
Nicholas
3
O que Nicholas perguntou, também eu queria saber se há uma maneira de fazer vibrar em algum padrão especial.
Nathan McKaskle
1
Eu sei que há um github que mostra os IDs do sistema para todos os arquivos de áudio do iPhone e 3 dos arquivos de vibração, mas alguém sabe como posso acessar os OUTROS arquivos de vibração? Quero usar a vibração Staccato por exemplo, mas não consigo descobrir o ID, ou mesmo se houver um.
jammyman34
1
@Nicholas se eu encontrar um aplicativo que me pede para pressionar um botão, caso contrário, ele vibrará para sempre, vou excluí-lo do meu dispositivo imediatamente.
user3441734
2
Lembre-se de que o dispositivo não vibra se a sessão de áudio do seu aplicativo estiver configurada com a categoria de sessão de áudio AVAudioSessionCategoryPlayAndRecord ou AVAudioSessionCategoryRecord. Isso garante que a vibração não interfira na gravação de áudio.
Fede Henze
70
No iOS 10 no iPhone 7 ou 7 Plus, tente:
let generator =UIImpactFeedbackGenerator(style:.heavy)
generator.impactOccurred()
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))}}}
Não se esqueça de adicionar 'import AVFoundation' para usar .oldSchool vibration :)
atereshkov
Exceto os casos restantes .oldSchool não funcionam, eu testei no dispositivo físico do iPhone 6, alguma ajuda?
Sai kumar Reddy
Você deve explicar que o FeedbackGenerator é háptico e veio com o iPhone 7. Você também pode ter apenas uma linha em cada caso: UIImpactFeedbackGenerator (estilo: .heavy) .impactOccurred ()
Verifique minha estrutura de código aberto Confira Haptica , ele suporta ambos Haptic Feedback, AudioServicese padrões de vibração únicos. Funciona em Swift 4.2, Xcode 10
UINotificationFeedbackGenerator disponível no iOS 10 e funciona com Haptic v2, podemos verificar isso:
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))}
Respostas:
Pequeno exemplo:
carregue em seu telefone e ele vibrará. Você pode colocá-lo em uma função ou IBAction como desejar.
Atualização de código:
Como os documentos de código da Apple foram escritos:
NOTA: Se vibrar não funcionar. verificar se a vibração está habilitada nas configurações de sons e tatos
fonte
No iOS 10 no iPhone 7 ou 7 Plus, tente:
fonte
Outros tipos de vibração:
Mais sobre vibração - http://www.mikitamanko.com/blog/2017/01/29/haptic-feedback-with-uifeedbackgenerator/
fonte
Swift 4.2 Atualizado
Basta inserir o código abaixo em seu projeto.
Uso
Código fonte
fonte
Para iOS 10.0+ Você pode experimentar UIFeedbackGenerator
ViewController simples acima, basta substituir seu controlador de visualização em seu "aplicativo de visualização única" de teste
fonte
Podemos fazer isso no Xcode7.1
fonte
Swift 4.2, 5.0
Você também pode escolher outros estilos, como
fonte
Você pode vibrar o telefone usando
AudioServices
ouHaptic Feedback
.Verifique minha estrutura de código aberto Confira Haptica , ele suporta ambos
Haptic Feedback
,AudioServices
e padrões de vibração únicos. Funciona em Swift 4.2, Xcode 10fonte
Agora você pode ligar
UIDevice.vibrate()
conforme necessário.fonte
UINotificationFeedbackGenerator disponível no iOS 10 e funciona com Haptic v2, podemos verificar isso:
fonte
fonte
AudioServicesPlaySystemSound
vez das respostas principaisAudioServicesPlayAlertSound
.