Android音訊焦點

2021-09-01 03:15:19 字數 1037 閱讀 6349

ad:獲取音訊焦點

可以通過呼叫 requestaudiofocus() 來實現,如果請求成功,返回 audiofocus_request_granted 。

您必須指定流型別(使用的是哪乙個流)和音訊焦點的型別(短暫的或是持久的)。

下面的**片斷演示了請求**音訊流的永久音訊焦點。

// abandon audio focus when playback complete 

am.abandonaudiofocus(afchangelistener);

// request audio focus for playback 

int result = am.requestaudiofocus(afchangelistener,

// use the music stream.

audiomanager.stream_music,

// request permanent focus.

audiomanager.audiofocus_gain_transient_may_duck);

if (result == audiomanager.audiofocus_request_granted)

每當其他的應用程式請求獲得音訊焦點(永久性的,短暫的,短暫並且支援duck的)的時候,您應用程式中註冊的音訊焦點***都會收到相應的訊息通知。

處理音訊焦點的丟失

如果您的應用程式可以請求音訊焦點,那麼當其他應用程式申請的時候,您的應用程式也可能會丟失音訊焦點。怎麼樣應對音訊焦點丟失的情況則取決於音訊焦點丟失的方式。

當音訊焦點丟失時,您註冊的監聽函式onaudiofocuschange()會收到乙個事件通知,通知中的引數包括了具體的資訊,比如是永久焦點丟失,短暫焦點丟失,還是短暫焦點且允許duck的焦點丟失。

音訊焦點的丟失是非常重要的一種系統狀態變化通知,系統會廣播很多有關音訊狀態變化的通知,您的應用程式應該監聽這些變化,並作出合適的應對方案,從而提高使用者的**體驗。

[url]

Android音訊焦點(一)

在android8.0之前,如果請求焦點使用了audiomanager.audiofocus gain transient may duck引數,它表明希望擁有了音訊焦點的其他應用降低音量來使用音訊,然而並不是所有的應用都會這樣做 也可能是開發者忘記優化 因為這並不是系統強制的。但是從android...

Android 處理音訊焦點 AudioFocus

在給定的時間儘管只有乙個活動可以執行,但android是乙個多工環境。這對應用程式使用音訊造成了乙個特別大的難度,由於只有乙個音訊輸出,可能會有好幾個 服務爭奪使用它。android2.2之前,沒有內建機制來解決這個問題,這可能在某些情況下導致糟糕的使用者體驗。例如,乙個使用者正在聽 同時另乙個應用...

Android音訊焦點詳解(上)

private void initdata 10 非同步準備 mmediaplayer.prepareasync catch ioexception e 我們重點看一下第2步 申請焦點 通過audiomanager物件呼叫requestaudiofocus方法,有三個引數 onaudiofocusc...