| Index: webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m
|
| diff --git a/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m b/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m
|
| index 51290a05b585bed47fe4074f17bf80b0cbec5026..9bf4c07daebcb4bb379a84a7f2f0101a909b6381 100644
|
| --- a/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m
|
| +++ b/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m
|
| @@ -10,6 +10,9 @@
|
|
|
| #import "ARDVideoCallViewController.h"
|
|
|
| +#import "webrtc/base/objc/RTCDispatcher.h"
|
| +#import "webrtc/modules/audio_device/ios/objc/RTCAudioSession.h"
|
| +
|
| #import "RTCAVFoundationVideoSource.h"
|
| #import "RTCLogging.h"
|
|
|
| @@ -27,6 +30,7 @@
|
| ARDAppClient *_client;
|
| RTCVideoTrack *_remoteVideoTrack;
|
| RTCVideoTrack *_localVideoTrack;
|
| + AVAudioSessionPortOverride _portOverride;
|
| }
|
|
|
| @synthesize videoCallView = _videoCallView;
|
| @@ -117,6 +121,26 @@
|
| [self switchCamera];
|
| }
|
|
|
| +- (void)videoCallViewDidChangeRoute:(ARDVideoCallView *)view {
|
| + AVAudioSessionPortOverride override = AVAudioSessionPortOverrideNone;
|
| + if (_portOverride == AVAudioSessionPortOverrideNone) {
|
| + override = AVAudioSessionPortOverrideSpeaker;
|
| + }
|
| + [RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeAudioSession
|
| + block:^{
|
| + RTCAudioSession *session = [RTCAudioSession sharedInstance];
|
| + [session lockForConfiguration];
|
| + NSError *error = nil;
|
| + if ([session overrideOutputAudioPort:override error:&error]) {
|
| + _portOverride = override;
|
| + } else {
|
| + RTCLogError(@"Error overriding output port: %@",
|
| + error.localizedDescription);
|
| + }
|
| + [session unlockForConfiguration];
|
| + }];
|
| +}
|
| +
|
| - (void)videoCallViewDidEnableStats:(ARDVideoCallView *)view {
|
| _client.shouldGetStats = YES;
|
| _videoCallView.statsView.hidden = NO;
|
|
|