Как играть в системный звук на iOS без вибрации?

В документации AudioServicesPlayAlertSound говорится, что я могу отключить вибрацию при воспроизведении звука:

iPhone воспроизводит указанный звук. Если пользователь настроил приложение «Настройки» для вибрации на кольце, также вызывает вибрацию. Тем не менее, устройство не вибрирует, если аудиозапись вашего приложения настроена с помощью категории аудиосообщений AVAudioSessionCategoryPlayAndRecord или AVAudioSessionCategoryRecord.

Тем не менее, я все еще чувствую вибрацию на своем iPhone 4S (iOS 5.1.1) даже после того, как моя категория «игра и запись». Он колеблется и вибрирует одновременно.

#import <AudioToolbox/AudioServices.h> #import <AVFoundation/AVAudioSession.h> NSError* error; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error]; if (error == nil) { AudioServicesPlayAlertSound(1000); } 

Я также попробовал AudioServicesPlaySystemSound , но результаты те же. Причина, по которой я хочу отключить вибрацию, заключается в том, что я создаю приложение, где пользователь должен разместить свой телефон далеко, а телефон не должен свертываться из-за вибрации.

Я тестировал это с помощью iPhone 4, и он делает именно то, что вы хотите.

  NSError* error; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error]; if (error == nil) { SystemSoundID myAlertSound; NSURL *url = [NSURL URLWithString:@"/System/Library/Audio/UISounds/new-mail.caf"]; AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &myAlertSound); AudioServicesPlaySystemSound(myAlertSound); } 

Используйте AudioServicesCreateSystemSoundID для создания SystemSoundID с использованием имени файла системного звука. Затем используйте AudioServicesPlaySystemSound() для воспроизведения звука без вибрации. Имена других звуков системы можно найти по ссылке ниже.

http://iphonedevwiki.net/index.php/AudioServices

Вы пытались сыграть свой собственный звуковой эффект вместо встроенного в Apple?

Если вы загружаете аудиофайл в свое приложение, вы можете легко использовать его с помощью рамки AudioToolBox, и вам больше не придется беспокоиться о вибрации.

 #import <AudioToolbox/AudioServices.h> //Initialise your soundID (your app delegate is a good place for this) SystemSoundID soundToPlay; NSString *path = [[NSBundle mainBundle] pathForResource:@"<YourFileName>" ofType:@"aif"]; NSURL *pathURL = [NSURL fileURLWithPath : path]; AudioServicesCreateSystemSoundID((__bridge CFURLRef) pathURL, &soundToPlay); //playback AudioServicesPlaySystemSound(soundToPlay); 
  • Как перечислить все папки и их подкаталоги / файлы в iPhone SDK?
  • Есть ли список имен, которые вы можете использовать с NSNotificationCenter?
  • Можно ли создать динамическую сетку с использованием iOS AutoLayout?
  • iOS 8.3 Ошибка в Facebook Не зарегистрирован
  • Какие типы / размеры изображений вам нужны при использовании полного экрана UIImage?
  • Просмотр прокрутки iOS не работает
  • Разница между UIImage и UIImageView
  • Свяжите статическую библиотеку внутри динамической (Cocoa Touch) рамки
  • Наблюдайте, когда UITabBar скрыт от делегата
  • iOS: полезность didReceiveMemoryWarning:
  • Могу ли заставить MPMoviePlayerController к пейзажу при нажатии на полноэкранную кнопку в iOS
  • Давайте будем гением компьютера.