вибрация iPhone при воспроизведении аудио - PullRequest
1 голос
/ 21 сентября 2011

Мое приложение воспроизводит аудио, используя AudioQueue и AudioSession.Я не могу перестать играть в соответствии с рабочим процессом приложения.В настоящее время мой клиент просит меня выполнить вибрацию iPhone в соответствии с некоторыми условиями.Я попытался выполнить это с AudioServices, воспроизводящими вибрацию как системный звук или звук предупреждения.Там нет положительного результата.Может ли кто-нибудь помочь мне и рассказать, как это реализовать?Я подаю официальное заявление на iPhone без джейлбрейка и не могу использовать пользовательские freamworks, потому что Apple может отклонить заявку.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 21 сентября 2011

Решено с помощью этого решения:)

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *err = nil;         
[audioSession setCategory :AVAudioSessionCategoryPlayback  error:&err];         
AudioServicesPlaySystemSound (kSystemSoundID_Vibrate);
[audioSession setCategory :AVAudioSessionCategoryPlayAndRecord  error:&err];
1 голос
/ 21 сентября 2011

Вот как я получаю вибрацию:

#import <AudioToolbox/AudioToolbox.h>

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *err = nil;         
[audioSession setCategory :AVAudioSessionCategoryPlayback  error:&err];         
AudioServicesPlaySystemSound (kSystemSoundID_Vibrate);

Надеюсь, это поможет

0 голосов
/ 20 июля 2018

Для справки, я не использую AudioQueue, но AVAudioEngine для записи чего-либо, и для моего случая я определил это как необходимость приостановить ввод, чтобы правильно воспроизвести вибрацию с AudioServicesPlaySystemSound во времязапись сеанса.

Так что в моем случае я сделал что-то вроде этого

audioEngine?.pause()
AudioServicesPlaySystemSound(1519)
do {
  try audioEngine.start()
} catch let error {
  print("An error occurred starting audio engine. \(error.localizedDescription)")
}
...