早期某知名公司的应用有这么一个问题,如果我在听音乐时打开该应用,播放一段小视频,视频播放完成之后,音乐没有继续播放。这个问题被很多用户吐槽,很久以后,该公司终于修复了这个问题。

无论声音是应用体验的重要部分,还是作为润色,你都应该知道用户期待声音有怎样的行为。

用户可以通过音量键、静音开关、耳机,以及音量滑条来控制声音,一些第三方的附件也可以控制声音。音频可以通过内部或外接的扬声器、耳机来输出,甚至是无线的 AirPlay 设备或 蓝牙设备。

  • 静音(Silence)。静音的情况下,用户希望不被意外的声音打扰,比如来电铃声、信息铃声、以及各种不重要的声音,比如,按键声、游戏配音、其他的听觉反馈等。用户只期待明确开始的声音,比如多媒体播放、闹钟、音频或视频信息。
  • 音量(Volume)。当用户使用手机上的物理按键或屏幕上的音量滑条来调节声音时,用户期待这个调整可以在系统层面影响所有的声音,包括音乐播放、应用内声音。唯一的例外是铃音音量(ringer volume),铃音音量总是在没有音频播放的时候单独调节。
  • 耳机(Headphone)。当用户插入耳机的时候,希望声音能自动切换线路(route)。当拔掉耳机的时候,期待播放暂停。

必要时可自动调节音量(不是总体的音量)。应用可以调节相对独立的音量来实现想要的效果。然而,最终的输出应该总是受系统音量控制。

合适的时候重新选择线路。比如,你家的客厅有立体声系统,又有 Apple TV。那你应该支持在这些中间切换,除非是特殊原因。

使用系统提供的音量视图来允许音量调节。调节音量时,提供一个界面控件无疑是很好的。iOS 系统为我们提供了MPVolumeView点击查看详情)。

为短声和震动,使用系统声音服务。这个指的是AudioToolboxSystem Sound Services)。

如果你的应用必须使用声音,那么给音频归类。实际上指的是AVAudioSession的 category,当其值不同,表现也不同。具体看下表:

category 含义 表现
Solo ambient 声音不是必须的(essential),但是它会静默其他音频。比如,带有配乐的游戏。 1.受静音开关控制。2.不和其他声音混合(mix)。3.应用在后台时不播放。
Ambient 声音不是必须的,并且不会静默其他音频。比如,一个游戏应用可以让用户在玩游戏时播放另一个应用中的音乐,来替代游戏的配乐。 1.受静音开关控制。2.和其他声音混合。3.应用在后台时不播放。
Playback 声音是必须的,并且跟其他声音混合。比如,语音电子书应用,用户可能想在离开应用后,仍然可以听。 1.不受静音开关控制。2.可能混合,也可能不混合其他声音。3.可以在后台播放。
Record 录音。比如,语音备忘录这类应用。 不受静音开关控制。2.不和其他声音混合。3.可以在后台录音。
Play and Record 声音可能同时被录制和播放。例如,一个语音信息应用。 1.不受静音开关控制。2.可能混合,也可能不混合其他声音。3.可以在后台录制或播放。

被打断以后,在合适的时间继续播放。有时候,当前播放的音频可能被另一个应用打断。临时打断可以重新开始,比如打进来的电话。永久打断不能重新开始,比如由 Siri 开始的音乐播放列表。

在你的应用结束一段临时的语音播放时,让其他应用知道。如果你的应用可能会临时打断其他应用的音频,你应该在合适的时候让其他应用可以安全的重新开始时得到通知。实现细节可以看这里:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation

不要重新调整音频附件。人们希望在所有的应用中,音频附件的行为一致。一定不要重新定义一个语音附件的意义。如果你的应用不支持某种附件,不响应它就好了。

iOS 用户体验之音频的更多相关文章

  1. (转)iOS Wow体验 - 第二章 - iOS用户体验解析(2)

    本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第二章译文精选的第二部分,其余章节将陆续放出.上一 ...

  2. (转)iOS Wow体验 - 第二章 - iOS用户体验解析(1)

    本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第二章译文精选的第一部分,其余章节将陆续放出.上一 ...

  3. ios用户体验

    如果转载此文,请注明出处:http://blog.csdn.net/paulery2012/article/details/25157347,谢谢! 前言: 本文是在阅读<ios用户体验> ...

  4. iOS用户体验之-导航之道

    iOS用户体验之-导航之道 用户不会意识到有导航指向的存在除非他遇到非预期的效果. 能够说导航时逻辑跳转的节点.所以导航对用户体验是至关重要的. iOS中有三种类型的导航.每一种适合不同类型的app. ...

  5. 《iOS用户体验》总结与思考-改动版

    假设转载此文.请注明出处:http://blog.csdn.net/paulery2012/article/details/25157347,谢谢. 前言: 本文是在阅读<ios用户体验> ...

  6. iOS用户体验之-modal上下文

    iOS用户体验之-modal上下文 何为模态视图,它的作用时聚焦当前.获得用户的注意,用户仅仅有完毕模态的任务才 退出模态视图.否则你将不能运行app的任务,比如,alert view,model v ...

  7. (转)iOS Wow体验 - 第三章 - 用户体验的差异化策略

    本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第三章译文精选,其余章节将陆续放出.上一篇:Wow ...

  8. iOS开发——浅谈构架与用户体验

    工作不是千篇一律的重复,从中寻找乐趣才是我们应该做的. 作为一名码农,做过几个项目,每次做项目的时候都会自己构思,如果完全是我自己设计,会怎么去设计?心里一直没有满意的答案,不管怎么布局,好像都感觉差 ...

  9. 必应词典手机版(IOS版)与有道词典(IOS版)之软件分析【功能篇】【用户体验篇】

    1.序言: 随着手机功能的不断更新和推广,手机应用市场的竞争变得愈发激烈.这次我们选择必应词典和有道词典的苹果客户端作对比,进一步分析这两款词典的客户端在功能和用户体验方面的利弊.这次测评的主要评测人 ...

随机推荐

  1. NOIP2017记

    Day-1~Day0 帮忙布置考场,打印座位表耗掉了不少XFZ的白纸(被瞪了一眼),围着三四楼跑了不知道多少圈贴座位表,跑到绝望...... 然后试了一下机,性能还可以,但是大佬用的机的cpu都不是很 ...

  2. Android虚拟机安装

    由于虫师那边的源估计到期了,我又找了一波. 打开SDK Manager.exe, 就在安卓目录下. 点击Tools--Options进入配置页面 mirrors.neusoft.edu.cn 配置如下 ...

  3. JavaScript原生拖放API入门总结

    一.背景 最早实现JavaScript拖放功能的是IE4的浏览器了.在当时,网页中只有图像和文本才能够进行拖放.IE5之后,拖放功能得到了扩展,形成了一个API(应用程序编程接口),使得几乎任何的标签 ...

  4. Oracle安装、Navicat for Oracle、JDBCl连接、获取表结构

    Oracle安装 Navicat for Oracle配置 Oracle JDBC连接(增删改查) Oracle安装 环境windows 7 64位 安装版本:oracle 11g(64位) 下载地址 ...

  5. 转 Caffe学习系列(3):视觉层(Vision Layers)及参数

    所有的层都具有的参数,如name, type, bottom, top和transform_param请参看我的前一篇文章:Caffe学习系列(2):数据层及参数 本文只讲解视觉层(Vision La ...

  6. Linux基础五

    Yum软件包管理 yum:基于rpm包构建的软件更新机制 自动解决软件包依赖关系 所有软件包由集中的yum软件仓库提供. [root@hydra桌面]#ls /misc/cd/repodata/ (r ...

  7. Caffe︱构建lmdb数据集、binaryproto均值文件及各类难辨的文件路径名设置细解

    Lmdb生成的过程简述 1.整理并约束尺寸,文件夹.图片放在不同的文件夹之下,注意图片的size需要规约到统一的格式,不然计算均值文件的时候会报错. 2.将内容生成列表放入txt文件中.两个txt文件 ...

  8. MyEclipse完善提示配置

    MyEclipse完善提示配置 一般的,MyEclipse中的提示以"."后进行提示,不是很完善.现在,修改提示配置,让提示更完善! 具体操作如下: 1.打开MyEclipse,单 ...

  9. Caused by:org.hibernate.MappingNotFoundException:resouce:com/you/model/Monkey.hbm.xml not found

    1.错误描述 Caused by:org.hibernate.MappingNotFoundException:resouce:com/you/model/Monkey.hbm.xml not fou ...

  10. Xenu-web开发死链接检测工具应用

    Xenu 是一款深受业界好评,并被广泛使用的死链接检测工具. 时常检测网站并排除死链接,对网站的SEO 非常重要,因为大量死链接存在会降低用户和搜索引擎对网站的信任,web程序开发人员还可通过其找到死 ...