我的应用程序使用 AudioQueue 和 AudioSession 播放音频。根据应用程序工作流程,我无法停止播放。目前,我的客户要求我根据某些条件执行 iPhone 振动。我尝试使用 AudioServices 将振动作为系统声音或警报声音来执行它。没有积极的结果。有人可以帮助我并告诉我如何实现它吗?我正在为未越狱的 iPhone 进行合法申请,并且不能使用自定义 framworks,因为 Apple 可以拒绝申请。
谢谢你。
使用此解决方案解决:)
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *err = nil;
[audioSession setCategory :AVAudioSessionCategoryPlayback error:&err];
AudioServicesPlaySystemSound (kSystemSoundID_Vibrate);
[audioSession setCategory :AVAudioSessionCategoryPlayAndRecord error:&err];
这就是我得到振动的方式:
#import <AudioToolbox/AudioToolbox.h>
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *err = nil;
[audioSession setCategory :AVAudioSessionCategoryPlayback error:&err];
AudioServicesPlaySystemSound (kSystemSoundID_Vibrate);
希望能帮助到你
作为参考,我不是在使用AudioQueue
anAVAudioEngine
来录制某些东西,对于我的情况,我将其归结为必须暂停输入才能AudioServicesPlaySystemSound
在录制会话期间正确播放振动。
所以就我而言,我做了这样的事情
audioEngine?.pause()
AudioServicesPlaySystemSound(1519)
do {
try audioEngine.start()
} catch let error {
print("An error occurred starting audio engine. \(error.localizedDescription)")
}