BAT 批处理程序 2017-06-24
本文转自:AVAudioSession(4):响应音频中断事件 | www.samirchen.com
本文内容主要来源于 Responding to Interruptions。
当一个音频中断到来时,会关闭你的 Audio Session,这通常就意味着停止或暂停你的音频播放。产生中断通常是因为另一个和你的应用存在竞争性音频行为的应用此时被激活,而这个应用设置的 Category 不支持 mix 你的音频。正确的处理音频中断事件能够让你的应用提供给用户更好的体验。
当用户电话响起的时候,你的应用还会因中断而被挂起。当电话结束,你的应用才会被继续运行。这时你的 Audio Session 需要被重新激活。
你可以通过监听音频中断相关的通知 AVAudioSessionInterruptionNotification 来处理中断事件。
当音频中断发生时,你应该做的事情大致如下:
根据使用的音频技术不同,相应的处理中断的技术也会有所差别,大致如下:
AV Foundation framework
:AVAudioPlayer 类和 AVAudioRecorder 类提供了中断开始和结束的 Delegate 回调方法来供你处理中断。你可以实现这些回调方法来在对应的时候更新你的用户界面,以及在中断结束后恢复播放。使用这两个类播放或录制音频,当发生中断时,系统会自动暂停播放或录制,在中断结束时,当你恢复播放或录制时,系统会自动激活你的 Audio Session。如果你想要在应用退出/启动时,记录/恢复播放位置,那么在发生中断时,你也要记得记录一下播放位置。
Audio Queue Services, I/O audio unit
:这些技术需要你的应用自己来处理中断,你需要负责记录播放或录制的位置,以便在中断结束恢复 Audio Session 时用到。
OpenAL
:当使用 OpenAL 播放时,你需要注册对应的通知事件来监听中断。并且你还需要自己管理 OpenAL 的上下文。
System Sound Services
:使用 System Sound Services 播发音频,当中断发生时,音频播放会静音,当中断结束后,音频播放会恢复。你的应用则无法影响音频中断时的行为。
音频中断发生的过程大致如下图所示:
需要注意的是,有一个中断开始消息不一定会有一个中断结束消息,这就意味着你在中断结束的回调里的处理逻辑可能会没有被执行到。所以你的应用需要关注当切到前台运行状态时或者用户点击了播放按钮时,是不是需要重新激活你的 Audio Session,因为有可能这时候你的 Audio Session 还因为一次有开始通知没结束通知的中断给关闭着呢。
一个客户要求给网站添加一个背景音乐,我用的是html5添加网页背景音乐的代码,在此记录一下以后有用。html5方法二:<videocontrols=""autoplay=""name="media&q
示例一和示例二 参考尚硅谷老师的视频教程;window.AudioContext){alert("当前浏览器不支持哟!DOCTYPE html><html><head><meta charset="U
doctype html> HTML5使用UTF-8编码演示:。<meta charset="UTF-8">2.HTML5中如何嵌入音频?</audio>3.HTML5中如何嵌入视频?</video&
<section>跟<div>类似,也是默认换行。html5form表单新增的属性。html5input:不支持的浏览器就是普通的文本输入框text. <inputtype="search"/>输入搜