Tutaj znajdziesz wszystkie kody dla każdego pliku .caf i powiązanej kategorii: github.com/TUNER88/iOSSystemSoundsLibrary Na przykład, jeśli chcesz lżejszych wibracji, możesz użyć kodu 1003.
czy istnieje sposób, aby telefon wibrował w sposób ciągły do momentu naciśnięcia przycisku?
Nicholas
3
To, o co zapytał Nicholas, również zastanawiałem się, czy jest sposób, aby wibrować w jakimś specjalnym wzorze.
Nathan McKaskle
1
Wiem, że istnieje github, który pokazuje ID systemu dla wszystkich plików audio iPhone'a i 3 plików wibracyjnych, ale czy ktoś wie, jak mogę uzyskać dostęp do INNYCH plików wibrujących? Chcę na przykład użyć wibracji Staccato, ale nie mogę znaleźć identyfikatora, ani nawet jeśli taki istnieje.
jammyman 34
1
@Nicholas jeśli znalazłem aplikację, która prosi mnie o naciśnięcie przycisku, w przeciwnym razie będzie wibrować w nieskończoność, zamierzam ją natychmiast usunąć z urządzenia.
user3441734
2
Należy pamiętać, że urządzenie nie wibruje, jeśli sesja dźwiękowa aplikacji jest skonfigurowana z kategorią sesji dźwiękowej AVAudioSessionCategoryPlayAndRecord lub AVAudioSessionCategoryRecord. Gwarantuje to, że wibracje nie będą zakłócać nagrywania dźwięku.
Fede Henze
70
W iOS 10 na iPhonie 7 lub 7 Plus spróbuj:
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))}}}
Nie zapomnij dodać „import AVFoundation”, aby korzystać z wibracji .oldSchool :)
atereshkov
Z wyjątkiem pozostałych przypadków .oldSchool, które nie działają. Testowałem na fizycznym urządzeniu iPhone 6, jakaś pomoc?
Sai kumar Reddy
Powinieneś wyjaśnić, że FeedbackGenerator jest haptyczny i pochodzi z iPhone'a 7. Możesz również mieć tylko jedną linię w każdym przypadku: UIImpactFeedbackGenerator (style: .heavy) .impactOccured ()
Zamówienie moim otwartym ramach źródłowego Haptica , obsługuje zarówno Haptic Feedback, AudioServicesi niepowtarzalne wzory wibracje. Działa na Swift 4.2, Xcode 10
UINotificationFeedbackGenerator dostępny od iOS 10 i współpracujący z Haptic v2, możemy to sprawdzić:
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))}
Odpowiedzi:
Krótki przykład:
załaduj telefon i zacznie wibrować. Możesz umieścić go w funkcji lub IBAction, jak chcesz.
Aktualizacja kodu:
Jak napisano w dokumencie Apple Code:
UWAGA: Jeśli wibracje nie działają. sprawdź wibracje jest włączone w ustawieniach dźwięków i haptyki
źródło
W iOS 10 na iPhonie 7 lub 7 Plus spróbuj:
źródło
Inne rodzaje wibracji:
Więcej o wibracjach - http://www.mikitamanko.com/blog/2017/01/29/haptic-feedback-with-uifeedbackgenerator/
źródło
Swift 4.2 Zaktualizowano
Po prostu wstaw poniższy kod do swojego projektu.
Stosowanie
Kod źródłowy
źródło
W przypadku iOS 10.0+ Możesz wypróbować UIFeedbackGenerator
Prosty kontroler widoku powyżej, po prostu zamień kontroler widoku w testowej „aplikacji pojedynczego widoku”
źródło
Możemy to zrobić w Xcode7.1
źródło
Swift 4,2, 5,0
Możesz także wybrać inne style, takie jak
źródło
Możesz wibrować telefon za pomocą
AudioServices
lubHaptic Feedback
.Zamówienie moim otwartym ramach źródłowego Haptica , obsługuje zarówno
Haptic Feedback
,AudioServices
i niepowtarzalne wzory wibracje. Działa na Swift 4.2, Xcode 10źródło
Teraz możesz po prostu dzwonić
UIDevice.vibrate()
w razie potrzeby.źródło
UINotificationFeedbackGenerator dostępny od iOS 10 i współpracujący z Haptic v2, możemy to sprawdzić:
źródło
źródło
AudioServicesPlaySystemSound
zamiast najlepszych odpowiedziAudioServicesPlayAlertSound
.