gpt4 book ai didi

ios - 如何在 Swift 中使用常量 : AVAudioSessionInterruptionNotification

转载 作者:行者123 更新时间:2023-11-28 09:31:26 28 4
gpt4 key购买 nike

这是我在 Swift 中的工作代码。问题是我使用 UInt 作为中间类型。

func handleInterruption(notification: NSNotification) {
let interruptionType = notification.userInfo?[AVAudioSessionInterruptionTypeKey] as! UInt
if (interruptionType == AVAudioSessionInterruptionType.Began.rawValue) {
// started
} else if (interruptionType == AVAudioSessionInterruptionType.Ended.rawValue) {
// ended
let interruptionOption = notification.userInfo?[AVAudioSessionInterruptionOptionKey] as! UInt
if interruptionOption == AVAudioSessionInterruptionOptions.OptionShouldResume.rawValue {
// resume!
}
}
}

有没有更好的办法?

最佳答案

这种方法类似于 Matt 的方法,但由于 Swift 3 的变化(主要是 userInfo[AnyHashable : Any]),我们可以使我们的代码多一点“Swifty”(不打开 rawValue 或转换为 AnyObject 等):

func handleInterruption(notification: Notification) {

guard let userInfo = notification.userInfo,
let interruptionTypeRawValue = userInfo[AVAudioSessionInterruptionTypeKey] as? UInt,
let interruptionType = AVAudioSessionInterruptionType(rawValue: interruptionTypeRawValue) else {
return
}

switch interruptionType {
case .began:
print("interruption began")
case .ended:
print("interruption ended")
}

}

关于ios - 如何在 Swift 中使用常量 : AVAudioSessionInterruptionNotification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30950006/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com