?????? 音頻焦點(diǎn)監(jiān)聽(tīng),聽(tīng)著似乎是一個(gè)很高大上的名字令宿。但其實(shí)呢,就是當(dāng)自己的APP播放時(shí)腕窥,這里主要是能開(kāi)后臺(tái)Service的播放粒没,比如說(shuō)FM播放時(shí),去打開(kāi)例如愛(ài)奇藝這樣的視頻播放簇爆,你的fm必須停止播放癞松,所需要用到的技術(shù)爽撒。
?????? 下面這篇文章對(duì)于解決這個(gè)技術(shù)問(wèn)題文章描寫(xiě)的很詳細(xì)。
Android AudioManager處理兩個(gè)播放器同時(shí)有聲音响蓉,停止其中一個(gè)播放的問(wèn)題
??????? 但也有幾點(diǎn)是我們?cè)谟玫臅r(shí)候需要注意的問(wèn)題:
??????? 首先硕勿,你自己的APP內(nèi)部,去播放視頻和音樂(lè)是自己用service就能控制的枫甲。
??????? 其次源武,在這篇文章中音頻焦點(diǎn)有四個(gè)值, AUDIOFOCUS_GAIN(你已獲得了音頻焦點(diǎn)) 和 AUDIOFOCUS_LOSS? (你已經(jīng)丟失了音頻焦點(diǎn)比較長(zhǎng)的時(shí)間了.你必須停止所有的音頻播放.因?yàn)轭A(yù)料到你可能很長(zhǎng)時(shí)間也不能再獲音頻焦點(diǎn)想幻,所以這里是清理你的資源的好地方.比如粱栖,你必須釋放MediaPlayer.)作者都已經(jīng)詳細(xì)舉例了。這里講下AUDIOFOCUS_LOSS_TRANSIENT (你臨時(shí)性的丟掉了音頻焦點(diǎn)举畸,很快就會(huì)重新獲得.你必須停止所有的音頻播放查排,但是可以保留你的資源,因?yàn)槟憧赡芎芸炀湍苤匦芦@得焦點(diǎn).) 這點(diǎn)抄沮。這其實(shí)是運(yùn)用很多的一點(diǎn)跋核。就是你的fm播放的時(shí)候,去愛(ài)奇藝看視頻叛买,這個(gè)時(shí)間段是很短的砂代,所以你的操作可以在這里做,在完全失去焦點(diǎn)的時(shí)候是做不到的率挣。至于AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:你臨時(shí)性的丟掉了音頻焦點(diǎn)刻伊,但是你被允許繼續(xù)以低音量播放,而不是完全停止椒功。這一點(diǎn)我還用不到捶箱,小伙伴們可以自己去嘗試下。
???????? 最后动漾,當(dāng)?shù)谌讲シ牌饕彩褂昧诉@個(gè)機(jī)制的話(huà)丁屎,當(dāng)你的應(yīng)用獲取聲音焦點(diǎn)之后,第三方播放器失去焦點(diǎn)旱眯,做了暫停處理晨川,即會(huì)停止播放。這樣就不會(huì)出現(xiàn)兩個(gè)播放器同時(shí)播放音樂(lè)的情況了删豺。而如果第三方播放器沒(méi)有經(jīng)過(guò)處理共虑,不管有沒(méi)有焦點(diǎn)都一直播放,那就沒(méi)有辦法了呀页。