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 收到音频中断结束通知")
            //恢复音频
        }
    }
相关文章
|
4月前
|
存储 Swift iOS开发
一个简单的库,可让你轻松处理 Swift 声音
一个简单的库,可让你轻松处理 Swift 声音
52 1
|
7月前
|
Swift iOS开发
iOS OC混编Swift 后者无法走断点
iOS OC混编Swift 后者无法走断点
49 0
|
iOS开发
iOS中的几种延迟执行方式
iOS中的几种延迟执行方式
427 0
|
编解码 Swift iOS开发
iOS 应用之间的跳转(OC&Swift)
iOS 应用之间的跳转(OC&Swift)
786 0
iOS 应用之间的跳转(OC&Swift)
Swift5.1—协议合成
Swift5.1—协议合成
137 0
|
XML 编解码 JSON
swift4.1 编解码
/* 本节来学习swift的编码、解码和串行化。 为什么需要编解码? 许多的编程任务涉及到通过网络发送数据、将数据保存到磁盘上,或是将数据提交到API以及 服务上。
1018 1
|
iOS开发 JavaScript
iOS定义长字符串的实用宏
今天在看WebViewJavascriptBridge源码的时候发现一个神奇的宏,在定义较长字符串时很实用。 举个例子,将一段js代码存到一个变量,为了便于阅读需要加入换行,需要在每行结束加上\。
1286 0
Swift 中的面向协议编程是如何点亮我的人生的
本文讲的是Swift 中的面向协议编程是如何点亮我的人生的,面向对象编程至今已经使用了数十年了,并且成为了构建大型软件约定俗成的标准。作为iOS编程的中心思想,遵循面向对象规范来编写一个 iOS 的应用几乎不可能实现。虽然面向对象有很多优点比如封装性,访问控制和抽象性,但是它也自带有固有的缺点。
1102 0
|
iOS开发 API 程序员