NSNotificationCenter.defaultCenter().addObserver(self, selector: "handleAVAudioSessionRouteChange:", name: AVAudioSessionRouteChangeNotification, object: nil)
@objc private func handleAVAudioSessionRouteChange(notification : NSNotification) {
println("change route \(notification.userInfo)")
let audioSession = AVAudioSession.sharedInstance()
var error : NSError?
let audioRouteChangeReason = notification.userInfo![AVAudioSessionRouteChangeReasonKey] as UInt
switch audioRouteChangeReason {
case AVAudioSessionRouteChangeReason.NewDeviceAvailable.rawValue:
println("headphone plugged in")
audioSession.overrideOutputAudioPort(AVAudioSessionPortOverride.None, error: &error)
case AVAudioSessionRouteChangeReason.OldDeviceUnavailable.rawValue:
println("headphone pulled out")
audioSession.overrideOutputAudioPort(AVAudioSessionPortOverride.Speaker, error: &error)
default:
break
}
}
No comments:
Post a Comment