5

我正在开发一个半双工 VOIP 通话应用程序。因为我试图在发言权交换期间播放音调和振动 - 进行发言权交换以将谈话者从 A 更改为 B,反之亦然,以进行半双工通话。如果我尝试使用 AudioServicesPlayAlertSound 播放音调,那么它会在用户接听电话时播放声音,但不会在发言交换期间播放声音,因为通话音频可能存在混合问题。所以我把AudioServicesPlayAlertSound换成了AVAudioPlayer的播放功能。所以,现在我可以在通话过程中完美地播放音调,即在全场交流期间,即它与 VOIP 通话音频很好地混合在一起。但是,如果我尝试使用 AudioServicesPlayAlertSound 添​​加振动功能,它不会振动设备,该函数会被调用但不会生效。如果我注释掉 AVAudioPlayer' s 功能播放音调,然后振动功能起作用。有人可以建议我缺少什么吗?

片段:

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

我尝试了以上 2 个振动功能,但它们只有在我注释掉 AVAudioPlayer 的播放功能时才有效,但我需要为 VOIP 通话的不同事件播放特定的音调,所以我也需要这个功能。

4

0 回答 0