理解音頻焦點 (第1/3部分):常見的音頻焦點用例

理解音頻焦點 (第1/3部分):常見的音頻焦點用例

Android手機支持多個應用同時播放音頻。操做系統會把多個音頻流混合在一塊兒播放,可是多個應用同時播放音頻,給用戶帶來的體驗每每不佳。爲了提供更友好的用戶體驗,Android提供了一個API,讓應用程序能夠共享音頻焦點,旨在保證同一時段內只有一個應用能夠維持音頻聚焦。html

本系列文章旨在讓您深刻理解音頻焦點的含義,使用方法和其對用戶體驗的重要性。本篇文章是該系列的第一部分,該系列三篇文章包含了:前端

  1. 最多見的音頻焦點用例和成爲一個優秀的媒體事業人員的重要性(此篇文章
  2. 其它一些能體現音頻焦點對應用體驗的重要性的用例
  3. 在您的應用中實現音頻焦點的三個步驟

音頻焦點的良好協做性,主要依賴於應用程序是否遵循音頻焦點指南,操做系統沒有強制執行音頻焦點的規範來約束應用程序,若是應用選擇在失去音頻焦點後繼續大聲播放音頻,會帶來不良的用戶體驗,可能直接致使應戶卸載應用,但這是沒法阻止的行爲,只能靠開發者自我約束。react

下面是一些音頻焦點使用場景(假設用戶正在使用您的應用播放音頻)。android

當您的應用須要播放聲音的時候,應該先請求音頻聚焦,在得到音頻焦點後再播放聲音。ios

用例一 : 用戶在使用您的應用播放音頻1時,打開另外一個應用並嘗試播放該應用相關的音頻2

您的應用不處理音頻焦點的狀況下:

您的音頻1和另外一個應用的音頻2會重疊播放,用戶沒法正常聽到來自任何應用的音頻,這樣的用戶體驗很不友好。git

您的應用處理了音頻焦點的狀況下:

在另外一個應用須要播放音頻時,它會請求音頻焦點常駐,即音頻永久聚焦。一旦系統受權,它便會開始播放音頻,這時候您的應用須要響應音頻焦點的丟失通知,中止播放。這樣用戶就只會聽到另外一個應用的音頻。github

一樣的道理,假如過了五分鐘,您的應用須要播放音頻,您一樣須要申請音頻焦點,一旦得到系統受權,咱們就能夠開始播放音頻,其它應用響應音頻焦點丟失通知,中止播放。後端

用例二 : 當您播放音頻時候,正好手機來電,須要播放響鈴。

您的應用不處理音頻焦點的狀況下:

手機響鈴後,用戶會聽到鈴聲和您的手機音頻疊加在一塊兒播放。若是用戶選擇直接掛斷電話,您的音頻會保持播放。若是用戶選擇接通電話,他會聽到通話聲音和您的應用音頻疊加在一塊兒播放,掛斷通話後您的應用音頻會保持播放。不管如何,您的應用音頻將全程保持播放狀態。這帶來的通話體驗極差。session

您的應用處理了音頻焦點的狀況下:

當手機響鈴(您還未接通電話), 您的應用應該選擇相應的迴避(這是系統應用的要求)措施來響應短暫的音頻焦點丟失。迴避的措施能夠是把應用的音量下降到百分之二十,也能夠是直接暫停播放(若是您的應用是播客類,語音類應用)。app

  • 若是用戶拒絕接聽電話,您的應用能夠立刻採起響應音頻焦點的獲取,而後作出提升音量或恢復播放的相關操做。
  • 若是用戶接聽了電話,操做系統會發出音頻焦點丟失的通知。您的應用應該選擇暫停播放,而後在通話結束後恢復播放。

總結

當您的應用須要輸出音頻時,應該請求音頻焦點。只有在得到音頻焦點後,才能開始播放。可是,在播放過程當中可能沒法把音頻焦點一直據爲己有,由於其它應用程序能夠發出音頻焦點的請求來搶佔音頻焦點,這種狀況下,您的應用能夠選擇暫停播放或者下降音量,這樣用戶才能更清晰地聽到其它應用程序的音頻。

想詳細瞭解更多應用程序中音頻焦點的場景用例,請閱讀本系列 第二篇文章

理解音頻焦點 (第2/3部分) - Nazmul Idris (Naz) - Medium

想學習怎麼在您的應用中實現音頻焦點的相關操做,請閱讀本系列 第三篇文章(終章)

理解音頻焦點 (第3/3部分) - Nazmul Idris (Naz) - Medium

Android多媒體開發資源


掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 AndroidiOSReact前端後端產品設計 等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃官方微博知乎專欄

相關文章
相關標籤/搜索