TA的每日心情 | 无聊 10 小时前 |
---|
签到天数: 1052 天 连续签到: 2 天 [LV.10]测试总司令
|
Android手机支持多个应用同时播放音频。操作系统会把多个音频流混合在一起播放,但是多个应用同时播放音频,给用户带来的体验往往不佳。为了提供更友好的用户体验,Android提供了一个API,让应用程序可以共享音频焦点,旨在保证同一时段内只有一个应用可以维持音频聚焦。
音频焦点的良好协作性,主要依赖于应用程序是否遵循音频焦点指南,操作系统没有强制执行音频焦点的规范来约束应用程序,如果应用选择在失去音频焦点后继续大声播放音频,会带来不良的用户体验,可能直接导致应户卸载应用,但这是无法阻止的行为,只能靠开发者自我约束。
下面是一些音频焦点使用场景(假设用户正在使用您的应用播放音频)。
当您的应用需要播放声音的时候,应该先请求音频聚焦,在获得音频焦点后再播放声音。
用例一:?用户在使用您的应用播放音频1时,打开另一个应用并尝试播放该应用相关的音频2
您的应用不处理音频焦点的情况下:
您的音频1和另一个应用的音频2会重叠播放,用户无法正常听到来自任何应用的音频,这样的用户体验很不友好。
您的应用处理了音频焦点的情况下:
在另一个应用需要播放音频时,它会请求音频焦点常驻,即音频永久聚焦。一旦系统授权,它便会开始播放音频,这时候您的应用需要响应音频焦点的丢失通知,停止播放。这样用户就只会听到另一个应用的音频。
同样的道理,假如过了五分钟,您的应用需要播放音频,您同样需要申请音频焦点,一旦获得系统授权,我们就可以开始播放音频,其它应用响应音频焦点丢失通知,停止播放。
用例二:?当您播放音频时候,正好手机来电,需要播放响铃。
您的应用不处理音频焦点的情况下:
手机响铃后,用户会听到铃声和您的手机音频叠加在一起播放。如果用户选择直接挂断电话,您的音频会保持播放。如果用户选择接通电话,他会听到通话声音和您的应用音频叠加在一起播放,挂断通话后您的应用音频会保持播放。无论如何,您的应用音频将全程保持播放状态。这带来的通话体验极差。
您的应用处理了音频焦点的情况下:
当手机响铃(您还未接通电话), 您的应用应该选择相应的回避(这是系统应用的要求)措施来响应短暂的音频焦点丢失。回避的措施可以是把应用的音量降低到百分之二十,也可以是直接暂停播放(如果您的应用是播客类,语音类应用)。
· 如果用户拒绝接听电话,您的应用可以马上采取响应音频焦点的获取,然后做出提高音量或恢复播放的相关操作。
· 如果用户接听了电话,操作系统会发出音频焦点丢失的通知。您的应用应该选择暂停播放,然后在通话结束后恢复播放。
总结
当您的应用需要输出音频时,应该请求音频焦点。只有在获得音频焦点后,才能开始播放。但是,在播放过程中可能无法把音频焦点一直据为己有,因为其它应用程序可以发出音频焦点的请求来抢占音频焦点,这种情况下,您的应用可以选择暂停播放或者降低音量,这样用户才能更清晰地听到其它应用程序的音频。
|
|