본문 바로가기

프로그래밍/iOS

[iOS] 이어폰 plug in/out 이벤트 받아오기

이어폰 event 받아오는 법


1. import 선언

 

#import <AVFoundation/AVFoundation.h>


2. viewDidLoad함수

viewDidLoad 함수에 아래와 같이 추가


[AVAudioSession sharedInstance];

    [[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(audioRouteChangeListenerCallback:)

                                                 name:AVAudioSessionRouteChangeNotification

 

                                               object:nil];


3. callback 함수 설정하기

- (void)audioRouteChangeListenerCallback:(NSNotification*)notification

{

    NSDictionary *interuptionDict = notification.userInfo;

    

    NSInteger routeChangeReason = [[interuptionDictvalueForKey:AVAudioSessionRouteChangeReasonKey] integerValue];

    

    switch (routeChangeReason) 

   {

            

        case AVAudioSessionRouteChangeReasonNewDeviceAvailable:

            NSLog(@"이어폰 꼽음");

            break;

            

        case AVAudioSessionRouteChangeReasonOldDeviceUnavailable:

            NSLog(@"이어폰 뺌");

            break;

    }

}


Case에 맞게 원하는 작업을 하면 끝


테스트는 이어팟밖에 없어서 그거로만 테스트해봄