• iOS 蓝牙耳机检测


    关于iOS 蓝牙耳机的摘掉,带上的检测:

    1 AVAudioSessioncategoryPlayAndRecord

    2 AVAudiosessionModeDefault

    3 kAudioSessionProperty_OverrideCategoryEnableBluetoothInput

    4  kAudioSessionProperty_OverrideCategoryDefaultToSpeaker

    5 AudioSessionAddpropertyListener(kAudioSessionProperty_AudioRouteChange,audioRouteChangeListenerCallback,null)

    6 回调实现:

    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) {
    
        }
    
    }

    代码来源:https://www.cnblogs.com/fangkuai/p/4241616.html

  • 相关阅读:
    工作流调度器Azkaban的安装配置
    MySQL初学入门基础知识-sql语句
    spark大数据生态架构
    快速排序算法——分析及总结 (非常好)
    经典的大数据面试题总结
    flume采集数据报错问题解决
    haproxy官方文档
    问题
    2016/6/7学习记录
    2016
  • 原文地址:https://www.cnblogs.com/8335IT/p/13633930.html
Copyright © 2020-2023  润新知