博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS 判断耳机插入/拔出
阅读量:5264 次
发布时间:2019-06-14

本文共 1478 字,大约阅读时间需要 4 分钟。

一. 方式

 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:@"设备已拔出"];

    }

}

 

转载于:https://www.cnblogs.com/fangkuai/p/4241616.html

你可能感兴趣的文章
hdu 1159 Common Subsequence(最长公共子序列,DP)
查看>>
Python的进程和线程
查看>>
Hadoop伪分布式模式部署
查看>>
Swift学习笔记:类和结构
查看>>
FusionCharts简明教程(一)---建立FusionCharts图形
查看>>
花生壳宣布网站的网址直接绑定到详细的项目——jboss版本
查看>>
problem-eclipse创建maven项目报错
查看>>
SQLserver 设置自增为显式插入
查看>>
matlab中各种取整函数
查看>>
Buy the Ticket HDU 1133 卡特兰数应用+Java大数
查看>>
Welcome to jQuery EasyUI
查看>>
ASP.NET前台代码绑定后台变量方法总结
查看>>
获取字符串中的数字、符号、中文、英文单词、字母、空格、字节、其他字符的个数...
查看>>
linux-挂载ISO安装文件
查看>>
shell 语法之 if
查看>>
text-overflow设置没反应问题解决
查看>>
Java中实现异常处理的基础知识
查看>>
SQL Server ->> 建立linked server到Azure SQL Server
查看>>
C# 枚举类型
查看>>
delphi 控件集
查看>>