kSystemSoundID_Vibrate无法使用AVAudioPlayer播放

时间:2013-06-11 23:12:59

标签: ios objective-c avaudioplayer playback vibrate

我正在开发半双工VOIP通话应用。在那里我试图在地板交换期间与振动一起播放音调 - 进行地板交换以将讲话者从A改变为B或反之亦然以进行半双工呼叫。如果我尝试使用AudioServicesPlayAlertSound播放音调,那么它会在用户接听电话时播放声音,但不会在电话交换期间播放声音,因为呼叫音频可能存在混音问题。所以我用AVAudioPlayer的播放功能取代了AudioServicesPlayAlertSound。因此,现在我能够在通话期间,即在地板交换期间完美地播放音调,即它与VOIP呼叫音频很好地混合。但是,如果我尝试使用AudioServicesPlayAlertSound添加振动功能,它不会振动设备,函数会被调用,但它不会生效。如果我注释掉AVAudioPlayer的功能来播放音调,那么振动功能就可以了。有人可以建议我缺少什么吗?

片段:

NSLog(@"Play toneIncoming");
[_audioPlayerIncoming setDelegate:self];
[_audioPlayerIncoming play];
NSLog(@"vibrate now");
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
//OR AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);

我尝试了上述两个振动功能,但只有当我注释掉AVAudioPlayer的播放功能时它们才能工作,但是我需要为VOIP呼叫的不同事件播放特定的音调,所以我也需要这个功能。

0 个答案:

没有答案