ios 耳机插入拔出检测

[AVAudioSession sharedInstance];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(audioRouteChangeListenerCallback:)
name:AVAudioSessionRouteChangeNotification
object:nil];

- (void)audioRouteChangeListenerCallback:(NSNotification*)notification
{
NSDictionary *interuptionDict = notification.userInfo;

NSInteger routeChangeReason = [[interuptionDict valueForKey:AVAudioSessionRouteChangeReasonKey] integerValue];

switch (routeChangeReason) {

case AVAudioSessionRouteChangeReasonNewDeviceAvailable:
NSLog(@"AVAudioSessionRouteChangeReasonNewDeviceAvailable");
NSLog(@"Headphone/Line plugged in");
break;

case AVAudioSessionRouteChangeReasonOldDeviceUnavailable:
NSLog(@"AVAudioSessionRouteChangeReasonOldDeviceUnavailable");
NSLog(@"Headphone/Line was pulled. Stopping player....");
break;

case AVAudioSessionRouteChangeReasonCategoryChange:
// called at start - also when other audio wants to play
NSLog(@"AVAudioSessionRouteChangeReasonCategoryChange");
break;
}
}

时间: 2024-10-26 06:10:31

ios 耳机插入拔出检测的相关文章

iOS 检测耳机插入/拔出

http://www.verydemo.com/demo_c134_i28481.html 开发过程中录音和播放这块碰到了一些问题,麻烦的主要有三个: 检测是否有声音输入设备 当有多个声音输出设备时,指定声音输出设备 检测耳机的插入和拔出 第一个问题,对于iTouch和iPad等本身不带麦克风的设备,需要检查是否插入了带录音功能的耳机:对于iphone,由于其本身已近自带麦克风,所以相对容易.第二个问题,当在本身带有外放的设备上插入耳机等输出设备时,就出现了多个输出设备,需要实现在程序中指定将声

IOS 判断耳机插入/拔出

一. 方式 1.注册监听 //注册监听耳机设备的插入/拔出 AudioSessionAddPropertyListener (kAudioSessionProperty_AudioRouteChange,audioRouteChangeListenerCallback,  nil); 2. void audioRouteChangeListenerCallback ( void                      *inUserData, AudioSessionPropertyID   

iOS检测耳机插入拔出

首先,需要导入两个框架 然后,注册通知检测耳机的插入与拔出操作 1 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(outputDeviceChanged:)name:AVAudioSessionRouteChangeNotification object:[AVAudioSession sharedInstance]]; 2 [[NSNotificationCenter defaultCente

windows10 声音图标总是被禁用,检测显示:扬声器,耳机或者耳机已拔出

参考来源:http://jingyan.baidu.com/article/90bc8fc85de19df652640c7f.html 控制面板/应用和声音/Realtek高清晰音频管理器 点击右上角的那个,黄色文件夹的图标,弹窗 将“禁用前面板插孔检测”选中 点击确定 然后确定,就好了.(但是不清楚为什么这样设置就好了,有清楚的大神,烦请告知.)

iOS耳机操作

iOS在7之后增加的麦克风权限的申请,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 AVAudioSession *avSession = [AVAudioSession sharedInstance]; if ([avSession respondsToSelector:@selector(requestRecordPermission:)]) { [avSession requestRecordPermission:^(BOOL available) { if (avai

WinCE 系统下移动存贮设备Storage 的拔插检测

今天在编程检测 Storage(SD/USB) 时,使用了一个消息:WM_DEVICECHANGE 来检测,测试了一下插入/拔出 Storage 设备时确实可以接收到消息. 但后继的处理出现问题:在 Storage 设备拔出时,立刻调用 FindFirstStore/FindNextStore 和 FindFirstPartition/FindNextPartition 时正常: 但在 Storage 设备插入时,立刻调用 FindFirstStore/FindNextStore 和 FindF

检测耳机插入和拔出

实时检测耳机插入和拔出: 每当插入和拔出耳机时,系统都会发送Intent广播, 所以,只需要用一个receiver把这个广播intent(获取的action是:"android.intent.action.HEADSET_PLUG")截获就好. 这个receiver必须要用代码注册,而不能写在manifest里面用写入内存的方式. 在Android下实现检测耳机插入和拔出,也即建立一个Broadcast Receiver,监听"android.intent.action.HE

android实现耳机插入和拔出状态检测

在Android下实现检测耳机插入和拔出,需要建立一个BroadcastReceiver,用来监听"android.intent.action.HEADSET_PLUG"广播. 实现步骤: 1.创建一个BroadcastReceiver的子类,并重写onReceive()方法,在该方法中编写接收到广播后的处理逻辑: 2.创建一个Activity类,在onCreate()方法中使用registerReceiver()方法进行注册监听广播: 3.在Activity中重写onDestory(

WINDOWS检测U盘插入,拔出

检测U盘的插入或拔出状态,然后根据状态做出相关操作. 检测U盘是否被插入是通过监听WM_DEVICECHANGE消息来实现的. 判断-U盘拔出和插入-获取它盘符 2010-05-04 10:59 加入消息 ON_WM_DEVICECHANGE(OnDeviceChange) 加入 afx_msg void OnDeviceChange(UINT nEventType, DWORD dwData); -------------------------------------------------