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

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

用户可以通过音量键、静音开关、耳机,以及音量滑条来控制声音,一些第三方的附件也可以控制声音。音频可以通过内部或外接的扬声器、耳机来输出,甚至是无线的 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. UVA - 1218 Perfect Service (树形DP)

    思路:dp[i][0]表示i是服务器:dp[i][1]表示i不是服务器,但它的父节点是服务器:dp[i][2]表示i和他的父亲都不是服务器.       转移方程: d[u][0] += min(d[ ...

  2. asp.net程序发布详解

    本文转载自Alan_beijing的博客ASP.NET 程序发布详细过程.内容进行了部分更改. ASP.NET网站的发布,无论是初学者还是高手,在程序的发布过程中或多或少会存在一些问题,譬如VS发布A ...

  3. duilib界面库学习(仿PC微信界面,有服务器,有数据库,可以网络通信)

    客户端代码:https://github.com/TTGuoying/duilib_ChatClient 服务器代码:https://github.com/TTGuoying/duilib_ChatS ...

  4. django-装饰器实现PV统计

    1.models层建立统计表 # 每日访问量统计 class Statistics(models.Model): pv = models.IntegerField(default=0) uv = mo ...

  5. 【Unity3D】Unity3D开发《我的世界》之六、创建地形(视频 + 源码)

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/unity_minecraft_06.html 一.引入LibNoise 虽然Unity3D里也有一个Mathf.P ...

  6. 实时Web与WebSocket实践

    引言:实时Web越来越被重视,Google.Facebook等大公司也逐渐开始提供实时性服务.实时Web将是未来最热门的话题之一.  本文选自<基于MVC的JavaScript Web富应用开发 ...

  7. java线程池的原理及实现

    1.线程池简介:     多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力.         假设一个服务器完成一项任务所需时间为:T1 ...

  8. PHP学习笔记-POST

    $_POST 描述通过http POST方式提交的数据都会封装到$_POST数组中 有些数据的提交必须使用post 比如上传文件 Post get提交 的区别 安全性 数据传输大小 浏览器限制文本大小 ...

  9. FusionWidgets之AngularGauge图

    1.设置AngularGauge图的数据源 AngularGauge.xml: <?xml version="1.0" encoding="UTF-8"? ...

  10. Adobe RIA 开发工程师认证考试大纲

    AdobeRIA 开发工程师认证考试大纲 考题数量:共90道题,考试通过正确率:60% 考试时间:120分钟  试题种类:单选题.多选题和判断题     1. Adobe RIA基础知识(2道题)  ...