【连载】IOS12设计规范-音频

用户通过音量键、静音键、耳机声控和屏幕上的音量调节滑块控制声音。很多 第三方配件也有声控功能。音频可以通过内部或外部扬声器、耳机输出,甚至 通过支持AirPlay或是蓝牙的设备来无线输出。无论声音是你App的重要功能还 只是一个点缀,你都应该知道用户对声音有什么期待并且去满足他们。

音频处理相对于其它来说是比较麻烦的,即要顾及到音频的输入,同时也需要注意音频输入输出设置的状态,同时音频输出又可以接入多种设备的控制。

静音(Silence)
用户将他们的设备调至静音来避免被突发的声响(比如电话铃声和短信提示声) 打扰。他们也想要关闭没有意义的声音,包括按键声、音效、游戏背景音乐以 及其它音频反馈。当设备被设置成静音后,只能播放用户确认打开过的声音, 比如媒体播放中的声音、闹钟、音频和视频信息。

image.png

声音(Volume)
无论是使用设备按键或是屏幕中的滑块,用户都期望音量的变化会改变整个系 统音量,包括音乐声和App内的音效。但是提示铃声音量是例外,它只能在音 频没有播放的情况下,被单独调节。
image.png

耳机(Headphones)

在私密环境中,用户使用耳机听声音,并且能够解放双手。当插入耳机时,用 户希望声音能够自动继续播放而不被中断。当拔掉耳机时,他们希望播放能够 立即暂停。


设计良好的音效体验(Designing a Great Audio Experience)

有时自动调整音量,但不是总体音量:你的App可以调整特定的音量来达到很棒的音响效果。但是最终的音量还是由系统音量来控制。

可以允许重置音频:用户经常会想要选择一个不同的音频输出设备。比如,他 们会想要用客厅的立体音响、车载收音机或是苹果电视来听音乐。请支持这个 功能除非你有十足的理由不这么做。
使用系统自带的音量窗口来调节音量:音量窗口是调整音频的最好方法。这个 窗口是可以自定义的,它包括一个音量的滑块,甚至还包括了一个重置音频输 出的控件。

使用系统自带音效来实现短音和振动:了解开发者指南,请参阅SystemSoundServices

如果声音对你的App十分重要,请先设置音频类型:不同的音频类型中,有的允许声音被静音键静音、有的与其它声音混合、或是允许App在后台时播放。 根据不同的类别和当前设备的音频状态来选择合适的方案,然后将其配置到你 的音频中去。例如,非必要情况下,请不要打断用户正在收听的来自另一个App 的音乐。总之,当你的App在运行时,最好不要改变其原有类型,当然那种需 要录制和重放不同时间音频的App除外。开发者指南,请参阅
AudioSessionProgrammingGuide0
音频处理实例

上边的类别这块比较难理解当时也不是理解类别里的只个名词的意思,专门去查了下资料。

原英文版的意思如下:
个人环境:solo ambient 环境:ambient 播放:playback 录制: record 播放并录制:play and record

AVAudioSession主要能控制App的哪些表现以及如何控制的呢?首先AVAudioSession将使用音频的场景分成七大类,通过设置Session为不同的类别,可以控制:

音频七个状态

可以看到,其实默认的就是“AVAudioSessionCategorySoloAmbient”类别。从表中我们可以总结如下:

  • AVAudioSessionCategoryAmbient : 只用于播放音乐时,并且可以和QQ音乐同时播放,比如玩游戏的时候还想听QQ音乐的歌,那么把游戏播放背景音就设置成这种类别。同时,当用户锁屏或者静音时也会随着静音,这种类别基本使用所有App的背景场景。

  • AVAudioSessionCategorySoloAmbient: 也是只用于播放,但是和"AVAudioSessionCategoryAmbient"不同的是,用了它就别想听QQ音乐了,比如不希望QQ音乐干扰的App,类似节奏大师。同样当用户锁屏或者静音时也会随着静音,锁屏了就玩不了节奏大师了。

  • AVAudioSessionCategoryPlayback: 如果锁屏了还想听声音怎么办?用这个类别,比如App本身就是播放器,同时当App播放时,其他类似QQ音乐就不能播放了。所以这种类别一般用于播放器类App。

  • AVAudioSessionCategoryRecord: 有了播放器,肯定要录音机,比如微信语音的录制,就要用到这个类别,既然要安静的录音,肯定不希望有QQ音乐了,所以其他播放声音会中断。想想微信语音的场景,就知道什么时候用他了。

  • AVAudioSessionCategoryPlayAndRecord: 如果既想播放又想录制该用什么模式呢?比如VoIP,打电话这种场景,PlayAndRecord就是专门为这样的场景设计的 。

  • AVAudioSessionCategoryMultiRoute: 想象一个DJ用的App,手机连着HDMI到扬声器播放当前的音乐,然后耳机里面播放下一曲,这种常人不理解的场景,这个类别可以支持多个设备输入输出。

  • AVAudioSessionCategoryAudioProcessing: 主要用于音频格式处理,一般可以配合AudioUnit进行使用

音频处理的七个状态介绍完毕,应该大体上能理解音频各个状态的工作原理了。
让我们再回到原文

当时可以重新播放被打断的音频:有时正在播放的音频会被另一个App的音频中 断。暂时性中断(如来电铃声)被认为是可恢复的。永久中断(如Siri打开的音乐播 放列表)被认为是无法恢复的。当一个可恢复的中断发生时,你的APP应该在中 断结束时自动重新播放被打断的音频。例如,一个正在播放配乐的游戏和一个播 放音频的多媒体App都应该可以恢复播放。


让其他App知道何时将暂时性的音频播放完毕:如果你的App可能会暂时中断其 他App的音频,它应该对音频会话进行适当的标记,这样其他App就能知道何 时可以安全的恢复。
更多开发者指南,请参阅AVFoundation中的
AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation。


只在特定时间对声音控件有反应:不管你的App是在前台还是后台运行,用户可 以从你App的外部控制音频播放,比如控制中心或耳机控制。如果你的App正 在音频相关的环境中播放音频,或者连接到一个支持AirPlay的设备上,那么它 可以对音频控制做出回应。否则,当控件激活时,你的App不能停止其他App 正在播放的音频。


不要重新定义声音控件:人们希望音频控制在所有App中都能保持一致。永远不 要重新定义声音控件。如果你的App不支持相应控件,那么它就不应该对它们 做出响应。

总结,音频处理的方式介绍完了,其中心点就是音频的七大状态和处理方式的理解,只要那段能理解这节基本就搞定。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351