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

posted on 2020-09-08 17:33  邗影  阅读(669)  评论(0编辑  收藏  举报

导航