Здесь вы найдете все коды для каждого .caf и связанной категории: github.com/TUNER88/iOSSystemSoundsLibrary. Например, если вам нужна более легкая вибрация, вы можете использовать код 1003.
есть ли способ позволить телефону постоянно вибрировать, пока не будет нажата кнопка?
Николас
3
Что спросил Николас, мне также было интересно, есть ли способ заставить его вибрировать по особому шаблону.
Натан МакКаскл
1
Я знаю, что есть github, который показывает идентификаторы системы для всех аудиофайлов iPhone и 3 файлов вибрации, но кто-нибудь знает, как я могу получить доступ к ДРУГИМ файлам вибрации? Я хочу, например, использовать вибросигнал Staccato, но не могу определить идентификатор или даже его наличие.
jammyman34
1
@Nicholas, если я нашел приложение, которое просит меня нажать кнопку, иначе оно будет постоянно вибрировать, я немедленно удалю его со своего устройства.
user3441734 07
2
Имейте в виду, что устройство не вибрирует, если аудиосеанс вашего приложения настроен с категорией аудиосеанса AVAudioSessionCategoryPlayAndRecord или AVAudioSessionCategoryRecord. Это гарантирует, что вибрация не мешает записи звука.
Fede Henze
70
В iOS 10 на iPhone 7 или 7 Plus попробуйте:
let generator =UIImpactFeedbackGenerator(style:.heavy)
generator.impactOccurred()
мы все используем iOS 10, не так ли? это новейшая, лучшая и бесплатная версия системы. каждый должен обновляться, нет никаких компромиссов в его наличии.
Адам Смака 03
13
После iOS 10 эта функция будет работать только с iPhone 7 или новее. Он будет игнорироваться на устройствах старше iPhone 7.
C6Silver
@ C6Silver Ты прав. Он не работает на iPhone 4s, 5,5s, 5c и 6. Эти устройства я тестировал.
Рокки Бальбоа
52
Другие виды вибрации:
importAudioToolboxAudioServicesPlaySystemSound(1519)// Actuate "Peek" feedback (weak boom)
AudioServicesPlaySystemSound(1520)// Actuate "Pop" feedback (strong boom)
AudioServicesPlaySystemSound(1521)//Actuate"Nope" feedback (series of three weak booms)
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))}}}
Не забудьте добавить import AVFoundation, чтобы использовать вибрацию .oldSchool :)
атерешков 02
Не работают оставшиеся чехлы .oldSchool. Я тестировал физическое устройство iPhone 6. Есть помощь?
Сай Кумар Редди,
1
Вы должны объяснить, что FeedbackGenerator является тактильным и поставляется с iPhone 7. У вас также может быть только одна строка в каждом случае: UIImpactFeedbackGenerator (style: .heavy) .impactOccurred ()
Оформить заказ моих рамок с открытой исходным кодом Haptica , он поддерживает Haptic Feedback, AudioServicesи модели уникальных вибраций. Работает на Swift 4.2, Xcode 10
UINotificationFeedbackGenerator доступен с iOS 10 и работает с Haptic v2, мы можем это проверить:
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))}
Ответы:
Краткий пример:
загрузите на свой телефон, и он завибрирует. Вы можете поместить его в функцию или IBAction, как хотите.
Обновление кода:
Как написано в документации Apple Code:
ПРИМЕЧАНИЕ: Если вибрация не работает. проверьте, включена ли вибрация в настройках звуков и тактильных ощущений
источник
В iOS 10 на iPhone 7 или 7 Plus попробуйте:
источник
Другие виды вибрации:
Подробнее о вибрации - http://www.mikitamanko.com/blog/2017/01/29/haptic-feedback-with-uifeedbackgenerator/
источник
Swift 4.2 обновлен
Просто вставьте код ниже в свой проект.
использование
Исходный код
источник
Для iOS 10.0+ вы можете попробовать UIFeedbackGenerator
Простой viewController выше, просто замените контроллер представления в тестовом «приложении с одним представлением».
источник
Мы можем сделать это в Xcode7.1
источник
Свифт 4.2, 5.0
Вы также можете выбрать другие стили, например
источник
Вы можете завибрировать телефон с помощью
AudioServices
илиHaptic Feedback
.Оформить заказ моих рамок с открытой исходным кодом Haptica , он поддерживает
Haptic Feedback
,AudioServices
и модели уникальных вибраций. Работает на Swift 4.2, Xcode 10источник
Теперь вы можете просто позвонить по
UIDevice.vibrate()
мере необходимости.источник
UINotificationFeedbackGenerator доступен с iOS 10 и работает с Haptic v2, мы можем это проверить:
источник
источник
AudioServicesPlaySystemSound
вместо основного ответаAudioServicesPlayAlertSound
.