• IOS 判断耳机插入/拔出


    一. 方式

     1.注册监听

    //注册监听耳机设备的插入/拔出

        AudioSessionAddPropertyListener (kAudioSessionProperty_AudioRouteChange,audioRouteChangeListenerCallback,  nil);

    2.

    void audioRouteChangeListenerCallback (

    void                      *inUserData,

    AudioSessionPropertyID    inPropertyID,

    UInt32                    inPropertyValueSize,

    const void                *inPropertyValue

                                           ) {

    if (inPropertyID != kAudioSessionProperty_AudioRouteChange) return;

    CFDictionaryRef routeChangeDictionary = (CFDictionaryRef)inPropertyValue;

    CFNumberRef routeChangeReasonRef =

        (CFNumberRef)CFDictionaryGetValue (routeChangeDictionary,

                              CFSTR (kAudioSession_AudioRouteChangeKey_Reason));

    SInt32 routeChangeReason;

    CFNumberGetValue (routeChangeReasonRef, kCFNumberSInt32Type, &routeChangeReason);

    if (routeChangeReason == kAudioSessionRouteChangeReason_OldDeviceUnavailable) {

    NSLog(@"拔掉耳机");

        } elseif (routeChangeReason == kAudioSessionRouteChangeReason_NewDeviceAvailable) {

    NSLog(@"插入耳机");

        } elseif (routeChangeReason == kAudioSessionRouteChangeReason_NoSuitableRouteForCategory) {

        }

    }

    二 . 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(outputDeviceChanged:) name:AVAudioSessionRouteChangeNotification object:[AVAudioSession sharedInstance]];

     

    - (void)outputDeviceChanged:(NSNotification *)aNotification

    {

        BOOL flag = [AudioHelper hasHeadset];

        if (flag) {

            [MBProgressHUD showMessageHUDAddedTo:self.view message:@"设备已插入"];

        }

        else

        {

            [MBProgressHUD showMessageHUDAddedTo:self.view message:@"设备已拔出"];

        }

    }

     

  • 相关阅读:
    iOS开发之MapKit
    iOS开发之代码截图
    iOS开发之CoreLocation(二)
    iOS开发之CoreLocation(一)
    iOS开发之静态库.a的制作
    iOS开发之通讯录 AddressBook
    iOS开发之ARC MRC混编
    iOS开发之蓝牙(一)GameKit
    java学习笔记之转换流
    iOS开发之蓝牙(二)CoreBluetooth
  • 原文地址:https://www.cnblogs.com/fangkuai/p/4241616.html
Copyright © 2020-2023  润新知