나름 프로그래밍?/ Objective-C

이어폰 연결 시키거나 뺀거 알아내기

-Dong- 2012. 5. 23. 00:15

#import <AudioToolbox/AudioToolbox.h>


    콜백함수로 등록



    // Registers the audio route change listener callback function
    AudioSessionAddPropertyListener (
                                     kAudioSessionProperty_AudioRouteChange,
                                     audioRouteChangeListenerCallback,
                                     self
                                     );
   



    콜백함수


void audioRouteChangeListenerCallback (
                                       void                      *inUserData,
                                       AudioSessionPropertyID    inPropertyID,
                                       UInt32                    inPropertyValueSize,
                                       const void                *inPropertyValue
                                       ) {
   
    CFDictionaryRef       routeChangeDictionary = inPropertyValue;
   
    CFNumberRef routeChangeReasonRef =
    CFDictionaryGetValue (routeChangeDictionary,
                          CFSTR (kAudioSession_AudioRouteChangeKey_Reason));
   
    SInt32 routeChangeReason;
   
    CFNumberGetValue (routeChangeReasonRef, kCFNumberSInt32Type, &routeChangeReason);
   
    if (routeChangeReason == kAudioSessionRouteChangeReason_OldDeviceUnavailable)
    {
        // Headset is unplugged..
        NSLog(@"빠졌다!!");
       
    }
    if (routeChangeReason == kAudioSessionRouteChangeReason_NewDeviceAvailable)
    {
        // Headset is plugged in..                              
        NSLog(@"꽂혔다!!");       
    }

}