关于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