私は音声通話用の AppRTC に取り組んでいます。アプリが開いているときは正常に動作しています。デバイスがロックされていると音声通話が機能しません。通話中にデバイスのロックを解除してアプリを開くと、正常に機能し始めますが、ロックされている間は機能しません。(音声が通過または再生されていません)。
plistの「必要なバックグラウンドモード」に「アプリがAirPlayを使用してオーディオを再生するか、オーディオ/ビデオをストリーミングする」を追加しました。
オーディオ セッションも構成されます。以下のコードを確認してください。
- (void)configureAVAudioSession:(BOOL)isSpeakerOn
{
// Get your app's audioSession singleton object
AVAudioSession *session = [AVAudioSession sharedInstance];
// Error handling
BOOL success;
NSError *error;
// set the audioSession category.
// Needs to be Record or PlayAndRecord to use audioRouteOverride:
success = [session setCategory:AVAudioSessionCategoryPlayAndRecord
error:&error];
if (!success) {
NSLog(@"AVAudioSession error setting category:%@",error);
}
// Set the audioSession override
success = [session overrideOutputAudioPort:isSpeakerOn?AVAudioSessionPortOverrideSpeaker:AVAudioSessionPortOverrideNone
error:&error];
if (!success) {
NSLog(@"AVAudioSession error overrideOutputAudioPort:%@",error);
}
// Activate the audio session
success = [session setActive:YES error:&error];
if (!success) {
NSLog(@"AVAudioSession error activating: %@",error);
}
else {
NSLog(@"AudioSession active");
}
}
何か不足している場合、または間違って実装した場合はお知らせください。
よろしく、