swift 音频被中断处理

简介: swift 音频被中断处理

1、监听音频打断事件


NotificationCenter.default.addObserver(self, selector: #selector(audioStart(_:)), name:  NSNotification.Name.AVAudioSessionInterruption, object: nil)


2、在通知方法中处理音频中断事件


AVAudioSessionInterruptionType有两种类型:beganended

public enum InterruptionType : UInt {
        case began = 1
        case ended = 0
    }
  • began表示收到中断事件开始的通知
  • ended表示收到中断事件结束的通知
@objc private func audioStart(_ note: Notification){
        print("addInterruptionSession \(note) \(note.userInfo![AVAudioSessionInterruptionTypeKey])")
        if AVAudioSessionInterruptionType.began.rawValue == note.userInfo![AVAudioSessionInterruptionTypeKey] as? UInt{
            print("addInterruptionSession 收到音频中断开始通知")
            //暂停音频
        } else if AVAudioSessionInterruptionType.ended.rawValue == note.userInfo![AVAudioSessionInterruptionTypeKey]as? UInt{
            print("addInterruptionSession 收到音频中断结束通知")
            //恢复音频
        }
    }
相关文章
|
7月前
|
Swift iOS开发
14 在Swift中进行循环控制
在Swift中进行循环控制
53 0
|
5月前
|
存储 Swift iOS开发
一个简单的库,可让你轻松处理 Swift 声音
一个简单的库,可让你轻松处理 Swift 声音
54 1
|
8月前
|
Swift iOS开发
iOS OC混编Swift 后者无法走断点
iOS OC混编Swift 后者无法走断点
50 0
Swift5.1—协议合成
Swift5.1—协议合成
140 0
|
iOS开发 Swift 存储
[译] 在 iOS Swift 中的懒加载变量
这篇文章解释了在 Swift 中懒加载变量是如何工作的,你必须对闭包有一些了解。
706 0
|
XML 编解码 JSON
swift4.1 编解码
/* 本节来学习swift的编码、解码和串行化。 为什么需要编解码? 许多的编程任务涉及到通过网络发送数据、将数据保存到磁盘上,或是将数据提交到API以及 服务上。
1024 1
|
iOS开发 JavaScript
iOS定义长字符串的实用宏
今天在看WebViewJavascriptBridge源码的时候发现一个神奇的宏,在定义较长字符串时很实用。 举个例子,将一段js代码存到一个变量,为了便于阅读需要加入换行,需要在每行结束加上\。
1306 0
|
C++ iOS开发 Swift
swift4.1 系统学习十 函数
swift的函数与其他语言中的函数还是有很多的不同点的, 我们在本节中一起学习swift中的函数都有哪些特性。 辅助文件, 在“统一的函数引用体系”中会用到。
1018 0
Swift 中的面向协议编程是如何点亮我的人生的
本文讲的是Swift 中的面向协议编程是如何点亮我的人生的,面向对象编程至今已经使用了数十年了,并且成为了构建大型软件约定俗成的标准。作为iOS编程的中心思想,遵循面向对象规范来编写一个 iOS 的应用几乎不可能实现。虽然面向对象有很多优点比如封装性,访问控制和抽象性,但是它也自带有固有的缺点。
1105 0