ExtendedAudioFileConvertTest/AppDelegate.m
/* |
Copyright (C) 2016 Apple Inc. All Rights Reserved. |
See LICENSE.txt for this sample’s licensing information |
Abstract: |
The application delegate. |
*/ |
#import "AppDelegate.h" |
@import AVFoundation; |
@interface AppDelegate () |
@end |
@implementation AppDelegate |
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
NSError *error = nil; |
// Configure the audio session |
AVAudioSession *sessionInstance = [AVAudioSession sharedInstance]; |
// our default category -- we change this for conversion and playback appropriately |
[sessionInstance setCategory:AVAudioSessionCategoryPlayback error:&error]; |
// we don't do anything special in the route change notification |
[[NSNotificationCenter defaultCenter] addObserver:self |
selector:@selector(handleAudioSessionRouteChangeNotification:) |
name:AVAudioSessionRouteChangeNotification |
object:sessionInstance]; |
// the session must be active for offline conversion |
[sessionInstance setActive:YES error:&error]; |
return YES; |
} |
// MARK: Notification Handler. |
- (void)handleAudioSessionRouteChangeNotification:(NSNotification *)notification { |
AVAudioSessionRouteChangeReason reasonValue = [[notification.userInfo valueForKey:AVAudioSessionRouteChangeReasonKey] unsignedIntegerValue]; |
AVAudioSessionRouteDescription *routeDescription = [notification.userInfo valueForKey:AVAudioSessionRouteChangePreviousRouteKey]; |
NSLog(@"Route change:"); |
switch (reasonValue) { |
case AVAudioSessionRouteChangeReasonNewDeviceAvailable: |
NSLog(@" NewDeviceAvailable"); |
break; |
case AVAudioSessionRouteChangeReasonOldDeviceUnavailable: |
NSLog(@" OldDeviceUnavailable"); |
break; |
case AVAudioSessionRouteChangeReasonCategoryChange: |
NSLog(@" CategoryChange"); |
NSLog(@" New Category: %@", [[AVAudioSession sharedInstance] category]); |
break; |
case AVAudioSessionRouteChangeReasonOverride: |
NSLog(@" Override"); |
break; |
case AVAudioSessionRouteChangeReasonWakeFromSleep: |
NSLog(@" WakeFromSleep"); |
break; |
case AVAudioSessionRouteChangeReasonNoSuitableRouteForCategory: |
NSLog(@" NoSuitableRouteForCategory"); |
break; |
default: |
NSLog(@" ReasonUnknown"); |
} |
NSLog(@"Previous route:\n"); |
NSLog(@"%@", routeDescription); |
} |
@end |
Copyright © 2016 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2016-09-29