监控耳机事件

-(void)whetherTheHeadsetInsert{
  [[AVAudioSession sharedInstance] setActive:YES error:nil];
//创建单例对象并且使其设置为活跃状态.
  [[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(@"耳机插入");
          break;
      case AVAudioSessionRouteChangeReasonOldDeviceUnavailable:
          NSLog(@"AVAudioSessionRouteChangeReasonOldDeviceUnavailable");
          NSLog(@"耳机拔出");
          break;
          
      case AVAudioSessionRouteChangeReasonCategoryChange:            // called at start - also when other audio wants to play
          NSLog(@"AVAudioSessionRouteChangeReasonCategoryChange");
          break;
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容