Page 70 - iOS人机界面指导手册
P. 70
各种游戏音效
音乐音轨
在这个程序中,声音可以提升用户体验,但是并不是主任务的核心。而且,用户也可能
想静音玩游戏,或者听着其他音乐玩。
最好的策略是看一下程序启动时用户有没有在听其他声音。不要在开始时让用户选择想
听哪个音轨。可以调用 ASS 的函数 AudioSessionGetProperty,读取
kAudioSessionProperty_OtherAudioIsPlaying 的值。基于这个值,你可以选择 Ambient
或者 Solo Ambient 类(两种类都支持用户静音玩游戏)。
如果程序启动时用户正在听其他声音,应该假设他想继续听,不应该强行用当前程
序的音轨代替它。这种情况下,应该选择 Ambient 类。
如果程序启动时用户没在听其他声音,选择 Solo Ambient 类。
用例 4:将用户精确实时地导航到目的地的程序。你应该提供
为行程中每一步说出方向
少许声音反馈
可以继续收听其他声音
在这个程序中,无论它在前台还是后台运行,声音导航提示都是主要任务。基于此,你
应该使用 Playback 类,允许你在设备被锁或切换到静音、程序跑在后台时也能播放声
音。
要想让用户运行程序的同时可以听其他声音,你可以添加 kAudioSessionProperty_O
verrideCategoryMixWithOthers 属性。但是,你同时也希望用户能在其他声音播放时
听到声音指示。这可以通过增加
kAudioSessionProperty_OtherMixableAudioShouldDuck 属性来实现。这样你的声音就
会比所有其他音轨的声音大(除了 iPhone 上的电话声)。
用例 5:允许用户上传图片和文字到网页的博客程序。你应该提供
简短的启动音乐
与用户操作相匹配的音效(比如上传成功后的提示)
上传失败时的警告音。
在这个程序中,声音可以提升用户体验,但不是核心功能。主任务与声音无关,用户不
依赖声音也能成功满足需求。在这个勇利用,你应该使用 SSS 来播放声音。这是因为所
有该程序对声音的要求都与 SSS 的特性相符(播放界面音效和警告音,无视设备是否被
锁,无视 Ring/Silent 的设置)。

