zoukankan      html  css  js  c++  java
  • 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:@"设备已拔出"];

        }

    }

     

  • 相关阅读:
    洛谷P3233 世界树
    线性基
    CF321E Ciel and Gondolas
    洛谷P2619 Tree I
    重温一下基本数据类型以及自动提升数据类型的问题
    不可理喻的JSTL标签库
    理解RESTful架构(转)
    Node.js的优点和缺点(转载)
    自制双色球随机号码
    编程, 细心永远都不嫌多(记录java连接数据库的一个错误)
  • 原文地址:https://www.cnblogs.com/fangkuai/p/4241616.html
Copyright © 2011-2022 走看看