Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright 2016 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2016 The WebRTC Project Authors. All rights reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 59 | 59 |
| 60 NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; | 60 NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; |
| 61 [center addObserver:self | 61 [center addObserver:self |
| 62 selector:@selector(handleInterruptionNotification:) | 62 selector:@selector(handleInterruptionNotification:) |
| 63 name:AVAudioSessionInterruptionNotification | 63 name:AVAudioSessionInterruptionNotification |
| 64 object:nil]; | 64 object:nil]; |
| 65 [center addObserver:self | 65 [center addObserver:self |
| 66 selector:@selector(handleRouteChangeNotification:) | 66 selector:@selector(handleRouteChangeNotification:) |
| 67 name:AVAudioSessionRouteChangeNotification | 67 name:AVAudioSessionRouteChangeNotification |
| 68 object:nil]; | 68 object:nil]; |
| 69 // TODO(tkchin): Maybe listen to SilenceSecondaryAudioHintNotification. | |
| 70 [center addObserver:self | 69 [center addObserver:self |
| 71 selector:@selector(handleMediaServicesWereLost:) | 70 selector:@selector(handleMediaServicesWereLost:) |
| 72 name:AVAudioSessionMediaServicesWereLostNotification | 71 name:AVAudioSessionMediaServicesWereLostNotification |
| 73 object:nil]; | 72 object:nil]; |
| 74 [center addObserver:self | 73 [center addObserver:self |
| 75 selector:@selector(handleMediaServicesWereReset:) | 74 selector:@selector(handleMediaServicesWereReset:) |
| 76 name:AVAudioSessionMediaServicesWereResetNotification | 75 name:AVAudioSessionMediaServicesWereResetNotification |
| 77 object:nil]; | 76 object:nil]; |
| 77 // Posted on the main thread when the primary audio from other applications | |
| 78 // starts and stops. Foreground applications may use this notification as a | |
| 79 // hint to enable or disable audio that is sedondary. | |
|
Chuck
2016/09/23 13:22:54
typo: s/sedondary/secondary/
henrika_webrtc
2016/09/23 14:09:50
Done.
| |
| 80 [center addObserver:self | |
| 81 selector:@selector(handleSilenceSecondaryAudioHintNotification:) | |
| 82 name:AVAudioSessionSilenceSecondaryAudioHintNotification | |
| 83 object:nil]; | |
| 78 // Also track foreground event in order to deal with interruption ended situ ation. | 84 // Also track foreground event in order to deal with interruption ended situ ation. |
| 79 [center addObserver:self | 85 [center addObserver:self |
| 80 selector:@selector(handleApplicationDidBecomeActive:) | 86 selector:@selector(handleApplicationDidBecomeActive:) |
| 81 name:UIApplicationDidBecomeActiveNotification | 87 name:UIApplicationDidBecomeActiveNotification |
| 82 object:nil]; | 88 object:nil]; |
| 83 } | 89 } |
| 84 return self; | 90 return self; |
| 85 } | 91 } |
| 86 | 92 |
| 87 - (void)dealloc { | 93 - (void)dealloc { |
| (...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 509 [self updateAudioSessionAfterEvent]; | 515 [self updateAudioSessionAfterEvent]; |
| 510 [self notifyMediaServicesWereLost]; | 516 [self notifyMediaServicesWereLost]; |
| 511 } | 517 } |
| 512 | 518 |
| 513 - (void)handleMediaServicesWereReset:(NSNotification *)notification { | 519 - (void)handleMediaServicesWereReset:(NSNotification *)notification { |
| 514 RTCLog(@"Media services were reset."); | 520 RTCLog(@"Media services were reset."); |
| 515 [self updateAudioSessionAfterEvent]; | 521 [self updateAudioSessionAfterEvent]; |
| 516 [self notifyMediaServicesWereReset]; | 522 [self notifyMediaServicesWereReset]; |
| 517 } | 523 } |
| 518 | 524 |
| 525 - (void)handleSilenceSecondaryAudioHintNotification: | |
|
Chuck
2016/09/23 13:22:54
This looks like it would fit on a single line (525
henrika_webrtc
2016/09/23 14:09:50
It does...but I used git cl format ;-)
| |
| 526 (NSNotification*)notification { | |
| 527 // TODO(henrika): just adding logs here for now until we know if we are ever | |
| 528 // see this notification and might be affected by it or if further actions | |
| 529 // are required. | |
| 530 NSNumber* typeNumber = | |
| 531 notification.userInfo[AVAudioSessionSilenceSecondaryAudioHintTypeKey]; | |
| 532 AVAudioSessionSilenceSecondaryAudioHintType type = | |
| 533 (AVAudioSessionSilenceSecondaryAudioHintType) | |
|
Chuck
2016/09/23 13:22:54
533/534 single line
henrika_webrtc
2016/09/23 14:09:50
Done.
| |
| 534 typeNumber.unsignedIntegerValue; | |
| 535 switch (type) { | |
| 536 case AVAudioSessionSilenceSecondaryAudioHintTypeBegin: | |
| 537 RTCLog(@"Another application's primary audio has started."); | |
| 538 break; | |
| 539 case AVAudioSessionSilenceSecondaryAudioHintTypeEnd: | |
| 540 RTCLog(@"Another application's primary audio has stopped."); | |
| 541 break; | |
| 542 } | |
| 543 } | |
| 544 | |
| 519 - (void)handleApplicationDidBecomeActive:(NSNotification *)notification { | 545 - (void)handleApplicationDidBecomeActive:(NSNotification *)notification { |
| 520 if (self.isInterrupted) { | 546 if (self.isInterrupted) { |
| 521 RTCLog(@"Application became active after an interruption. Treating as interr uption end."); | 547 RTCLog(@"Application became active after an interruption. Treating as interr uption end."); |
| 522 self.isInterrupted = NO; | 548 self.isInterrupted = NO; |
| 523 [self updateAudioSessionAfterEvent]; | 549 [self updateAudioSessionAfterEvent]; |
| 524 [self notifyDidEndInterruptionWithShouldResumeSession:YES]; | 550 [self notifyDidEndInterruptionWithShouldResumeSession:YES]; |
| 525 } | 551 } |
| 526 } | 552 } |
| 527 | 553 |
| 528 #pragma mark - Private | 554 #pragma mark - Private |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 823 - (void)notifyDidStopPlayOrRecord { | 849 - (void)notifyDidStopPlayOrRecord { |
| 824 for (auto delegate : self.delegates) { | 850 for (auto delegate : self.delegates) { |
| 825 SEL sel = @selector(audioSessionDidStopPlayOrRecord:); | 851 SEL sel = @selector(audioSessionDidStopPlayOrRecord:); |
| 826 if ([delegate respondsToSelector:sel]) { | 852 if ([delegate respondsToSelector:sel]) { |
| 827 [delegate audioSessionDidStopPlayOrRecord:self]; | 853 [delegate audioSessionDidStopPlayOrRecord:self]; |
| 828 } | 854 } |
| 829 } | 855 } |
| 830 } | 856 } |
| 831 | 857 |
| 832 @end | 858 @end |
| OLD | NEW |