私は半二重 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 通話のさまざまなイベントに対して特定のトーンを再生する必要があるため、その機能も必要です。