在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、注册通知NotificationCenter.default.addObserver(self, selector: #selector(audioRouteChangeListenerCallback(notification:)), name: AVAudioSession.routeChangeNotification, object: AVAudioSession.sharedInstance()) 2、处理接收的通知@objc func audioRouteChangeListenerCallback(notification:NSNotification) { guard let userInfo = notification.userInfo, let reasonValue = userInfo[AVAudioSessionRouteChangeReasonKey] as? UInt, let reason = AVAudioSession.RouteChangeReason(rawValue:reasonValue) else { return } switch reason { case .newDeviceAvailable: //插入耳机时关闭扬声器播放 self.agoraKit?.setEnableSpeakerphone(false) case .oldDeviceUnavailable: //播出耳机时,开启扬声器播放 self.agoraKit?.setEnableSpeakerphone(true) default: () } }
附:是否插入耳机func hasHeadset() -> Bool { let audioSession = AVAudioSession.sharedInstance() let currentRoute = audioSession.currentRoute for output in currentRoute.outputs { if output.portType == AVAudioSession.Port.headphones { return true } } return false }
|
请发表评论