音频
iPhone 和 iPad 可以通过内置或外置扬声器、耳机,和无线蓝牙或支持”隔空播放“的设备播放音频。用户通过使用控件来调节设备上的声音,包括音量按钮、响铃或静音开关、耳机控件、控制中心的音量滑块和第三方配件中的声音控件。无论声音是应用体验的主要部分还是作为点缀,都应满足用户对对于声音体验的期待。
静音
用户会将设备调至静音,来避免被突发的声响(如铃声和信息声)打扰。在这个场景下,他们也想要关闭非必要的声音,包括按键声、音效、游戏背景音乐以及其它音频反馈。当设备被调至成静音后,只能播放用户确认开启的声音,比如媒体播放的声音、闹钟、音频和视频信息。
音量
用户希望对音量的调节是全局性的,会改变系统中的所有音量,包括音乐声和应用内的音效。但是铃声音量例外,用户可以在”设置“中单独对其调节。
耳机
用户通过佩戴耳机来保护听觉私密性,同时能够释放双手。当插入耳机时,用户希望音频能够自动续播而不被中断。当拔掉耳机时,用户希望播放能够立即暂停。
设计出色的音频体验
-
必要时自动调整音量,但不要调整全局音量
应用可以通过调整相对独立的音量大小,来实现一个更好的音频效果,但全局音量应始终由系统音量来控制输出。
-
必要时改变音频输出路线
用户经常会选择不同的音频输出设备。例如,他们可能想通过客厅的音响、汽车收音机或苹果电视收听音乐。
-
让用户使用系统自带的音量窗口来调节音量
系统音量窗口包括一个音量调节滑动按钮,一个用于改变音频输出路线的控件。应用可以自定义音量调节滑动按钮的样式。
-
使用系统自带音效来播放短提示音和振动提示音
-
选择与应用音频类别相匹配的配置方案
根据不同的音频类别来选择配置方案,应用的声音可以与其他应用声音相混合,或是在应用处于后台运行时播放,或是在用户设置静音模式时停止。
尽可能地选择一个能满足用户期望的音频类别。例如,非必要时,不要打断用户正在收听的来自另一个应用的音乐。
类别 含义 行为 个人环境 声音是不必要的,但是它会使其他音频静音。例如,有背景音乐的游戏。 受静音开关控制;不与其他声音混合;不在后台播放。 通常环境 声音是不必要的,也不会使其他音频静音。例如,一个游戏允许用户在游戏中播放另一个应用的音乐来代替游戏本身的背景音乐。 受静音开关控制;可以与其他声音混合;不在后台播放。 播放 声音是必要的,而且可能会和其他声音混合。例如,有声读物或者外语学习应用,用户可以离开应后也能听到其内容。 不受静音开关控制;可能也可能不与其他声音混合;可以在后台播放。 录制 声音可以被录制。例如,一款提供录音模式的笔记应用。如果这个应用允许用户播放录音,那么它可能需要把类别转换为播放。 不受静音开关控制;不与其他声音混合;可以在后台录制。 播放并录制 声音可能会同时被录制和播放。例如,一个同时拥有音频消息或视频通话功能的应用。 不受静音开关控制;可能也可能不与其他声音混合;可以在后台录制和播放。 -
确定是否自动恢复播放被中断的音频
应用内正在播放的音频,有时会被其他应用的音频中断。有的被中断后(例如来电铃声)可以自动恢复播放,有的不可以(例如用户打开了音乐播放列表)。
根据中断的类型和应用的类型,来决定是否让应用在被中断后自动恢复播放。例如,一个音乐应用应该在中断结束后自动恢复播放音乐。
另一方面,游戏类应用在自动恢复音频播放前,不需要根据中断的类型来进行判断,因为游戏音频的播放并不需要用户来决定。
-
确保 VoIP 应用对音频会话的中断做出正确响应
尤其是当用户在使用设备内置麦克风,同时关闭 iPad 的 Smart Folio 时,需要默认立即结束通话。
关闭 Smart Folio 会自动将 iPad 的麦克风静音,默认情况下会中断与之相关的音频会话。
如果应用在用户重新打开 Smart Folio 时自动开启音频会话,那么就有可能可能在用户不知情的情况下开启了麦克风,从而侵犯了用户的隐私。应用应当根据音频会议的中断情况来做出正确的响应。
-
让其他应用知道你的应用何时完成临时音频的播放
如果应用的音频临时中断了其他应用的音频,请确保以适当的方式对音频会话进行标记,让其他应用能够知道他们何时可以恢复播放。
-
只在需要时对音频控件做出响应
无论应用在前台还是后台运行,用户都可以在应用外部对音频进行控制,例如在系统控制中心或在耳机上进行调节。
如果你的应用在一个明确的音频使用场景中播放音频,或连接到一个支持蓝牙或 AirPlay 的设备上,它是可以对音频控件做出响应的。否则,当用户激活控件时,你的应用不能停止其他应用正在播放的音频。
-
不要重新定义音频控件
用户希望音频控制在所有 App 中都能保持一致。
永远不要重新定义声音控件。如果你的 App 不支持相应控件,那么它就不应该对它们做出响应。用户希望所有应用中的音频控件都能保持一致的体验,所以不应该在应用中重新定义音频控件的功能。如果你的应用不支持某些控件,就不要响应它们。