#Google# 理解音频焦点

主站在评测 Adidas miCoach Smart Run
时,觉得它不错,只是有三大缺点,包括续航力不够、播放多媒体时音量不足,以及不能将跑步所得数据输出;只是,现在
Adidas 这次发放的韧体竟然一次地解决了上述问题。用户现在可以将储存了 GPS
数据的 gpx 档案输出,而 Adidas
指出他们的下一步就是为用户带来平台至平台的双向输出,包括支持其他平台。而且,Adidas
更直言他们会在「不久的将」来将这个产品的 API
开放给大家。最后,续航力不够和播放多媒体时音量不足也是有得到改善的。引用来源:Engadget

www.9992019.com 1

AudioFocusCover.png

第一部分

在你的Android设备上有许多的App可以同时播放音频。当Android操作系统将所有的音频流混合在一起的时候,对于一个用户来说这可能就是有破坏性的。这样的结果就会导致一个很差的用户体验。为了有一个良好的用户体验,Android系统提供给了一个API来让所有的Apps之间分享音频焦点(audio
focus),在同一时刻,只有一个App可以持有音频焦点。

这个系列文章的目的在于:

  • 让你更好、更深入的理解什么是音频焦点
  • 为什么一个好的多媒体用户体验是非常重要的。
  • 如何使用它。

此系列文章将包括:

  1. 运作一个良好的多媒体类App的重要性以及最常见的音频焦点使用场景(第一部分)
  2. 音频焦点对于多媒体应用程序用户体验重要性相关用例(第二部分)
  3. 在你的应用中实现音频焦点的三个步骤(第三部分)

音频焦点是具有协作性质的,而且它依赖于各个App遵守音频焦点的使用准则。系统不会强迫去遵守这些准则,如果一个应用想在失去音频焦点之后还可以继续的大声播放,这件事情是无法被阻止的。然而,这会导致一个非常糟糕的用户体验,对于用户想卸载你的应用来说这可是一个好机会。这有一些使用音焦点景去播放的场景。假设用户启动了你的App,这个App正在播放一段音频。当你的App需要输出音频的时候,它应该请求音频焦点。只有在被授权了音频焦点之后,才应该去播放音频。

场景1 – 当你的App正在播放音频,当前用户启动了另一个多媒体App来播放音频

如果你的App不处理音频焦点,会发生什么呢?

如果另一个App开始播放音频,它会覆盖你正在播放的音频。结果就是体验很差,谁的也听不清楚了。

www.9992019.com 2

AF_1.png

处理音频焦点的App会发生什么情况?

当其他的多媒体应用开始播放音频,它应该请求永久的音频焦点。一旦系统给了音频焦点,它将开始播放。你的应用需要通过停止播放来响应永久音频焦点的丢失,所以用户只会听到另一个App播放的音频。

[图片上传失败…(image-58ade6-1517393450099)]

现在,如果用户想在你的App中继续播放音频,之后你的App将会请求音频焦点。只有当你的音频焦点被授权之后,你的App才可以继续播放音频。其它的App也会通过停止播放音频来响应音频焦点的丢失。

场景2 – 你听音乐正嗨,突然来了电话

如果你的App不处理音频焦点会发生什么

当你的手机开始响铃时,除了铃声之外用户也会听到你的App中播放的音频,这当然不是一个好的用户体验。如果他们选择了拒绝接听,那么你的音频应该继续播放。如果他们选择了接通电话,你App中的音频会随着手机通话音频一起播放。当它们完成了通话,如果你的App不会自动恢复播放的话,这当然也不是一个好的用户体验。

www.9992019.com 3

AF_2.png

如果你的App处理了音频焦点会发生什么情况呢?

当你的手机铃声响起(而且用户还没有接通),你的App应该响应一个暂时的音频焦点丢失,响应的方式可以是降低音量,可以通过降低当前音量的20%来完成响应,或者一齐暂停当前所有音频。

  • 如果这个用户拒绝了这通电话,那么你的App应该通过恢复音量来响应焦点的重新获得,或者恢复播放。

  • 如果这个用户接通了电话,那么系统会通知你丢失了音频焦点。那么你的音频应该暂停播放。当它们电话打完了,你的App应该通过以正常音量恢复播放来响应音频焦点的重新获得。

www.9992019.com 4

AF_3.png

当你的App需要输出音频,它就要请求音频焦点。只有在被授予了音频焦点之后,它才应该播放音频。然而,你得到的音频焦点不会乖乖地等你把音频播完,其它的App也会请求这个音频焦点,并且会抢占了这个音频焦点。在这种情况下,你的App应该暂停播放或者降低音量来让用户更容易听到新的音频资源。

第二部分(更多场景)

场景3 – 在后台运行的导航类App提供了导航音频,而另一个App正在播放音频

www.9992019.com,如果不处理音频焦点会怎么样?

重叠的导航音频和音乐会使得用户分神。

应该如何处理音频焦点呢?

当导航App播报下一个指令的时候,你的App应该减小音量来响应焦点暂时的丢失(因为导航App正在播放音频)。但在一些情况中,你的App应该停止播放:播放音频书,播客,讲述。

当导航App的指令播放完毕之后,它会扔掉音频焦点(audio
focus),而你的App会重新拿到这个焦点,并且应该恢复音量到原来的等级上去,作为重新获得音频焦点的响应。

相关文章