1

我的应用程序使用 AudioQueue 和 AudioSession 播放音频。根据应用程序工作流程,我无法停止播放。目前,我的客户要求我根据某些条件执行 iPhone 振动。我尝试使用 AudioServices 将振动作为系统声音或警报声音来执行它。没有积极的结果。有人可以帮助我并告诉我如何实现它吗?我正在为未越狱的 iPhone 进行合法申请,并且不能使用自定义 framworks,因为 Apple 可以拒绝申请。

谢谢你。

4

3 回答 3

2

使用此解决方案解决:)

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *err = nil;         
[audioSession setCategory :AVAudioSessionCategoryPlayback  error:&err];         
AudioServicesPlaySystemSound (kSystemSoundID_Vibrate);
[audioSession setCategory :AVAudioSessionCategoryPlayAndRecord  error:&err];
于 2011-09-21T17:08:22.547 回答
1

这就是我得到振动的方式:

#import <AudioToolbox/AudioToolbox.h>

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

希望能帮助到你

于 2011-09-21T09:09:03.460 回答
0

作为参考,我不是在使用AudioQueueanAVAudioEngine来录制某些东西,对于我的情况,我将其归结为必须暂停输入才能AudioServicesPlaySystemSound在录制会话期间正确播放振动。

所以就我而言,我做了这样的事情

audioEngine?.pause()
AudioServicesPlaySystemSound(1519)
do {
  try audioEngine.start()
} catch let error {
  print("An error occurred starting audio engine. \(error.localizedDescription)")
}
于 2018-07-20T07:57:53.720 回答