kSystemSoundID_Vibrate 不适用于 AVAudioPlayer Play

2024-04-19

我正在开发一个半双工 VOIP 呼叫应用程序。因为我试图在楼层交换期间播放音调和振动 - 进行楼层交换是将讲话者从 A 更改为 B,或者反之亦然,以进行半双工呼叫。如果我尝试使用 AudioServicesPlayAlertSound 播放提示音,那么它会在用户接到呼叫时播放声音,但不会在发言权交换期间播放声音,因为呼叫音频可能存在混合问题。所以我用AVAudioPlayer的播放函数替换了AudioServicesPlayAlertSound。因此,现在我能够在通话期间(即发言权交换期间)完美地播放音调,即它与 VOIP 通话音频完美混合。但是,如果我尝试使用 AudioServicesPlayAlertSound 添​​加振动功能,它不会振动设备,该函数会被调用,但不会生效。如果我注释掉AVAudioPlayer的播放音调的功能,那么振动功能就可以工作。有人可以建议我缺少什么吗?

SNIPPET:

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

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


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kSystemSoundID_Vibrate 不适用于 AVAudioPlayer Play 的相关文章

随机推荐