Android藍芽開發音訊焦點

2021-08-10 20:35:41 字數 915 閱讀 7631

在車機開發中,藍芽模組一般是定製的,而藍芽的音訊輸出,包括藍芽**,藍芽**,都要制定聲音策略,進行音訊焦點的管理。

音訊焦點的管理,這一點類似於android多**開發時的音訊焦點管理,也是通過audiomanager來進行管理。

音訊焦點管理的主要**,一般寫在主服務裡即可,便於統籌管理。

以藍芽**為例(藍芽**的類似),稍作說明:

/** 藍芽**的音訊管理類例項 */

private audiomanager ammusic;

/**藍芽**的音訊焦點*** */

private onaudiofocuschangelistener maudiofocuslistener ;

/** 藍芽**聲音焦點 是否丟失的標識位*/

public static boolean musiclostfocuse = true;

在主服務初始化的時候,對ammusic進行初始化:

ammusic = (audiomanager) getsystemservice(context.audio_service);

然後初始化音訊焦點***:

/**實現音訊焦點***,如果有其他競爭者一起爭奪audiofocus,通過監聽audiofocus,自己這方做出相應的變化*/

maudiofocuslistener = new onaudiofocuschangelistener() ;

再然後就是封裝申請焦點的方法和釋放焦點的方法:

/** 申請焦點方法*/

public int musicrequestaudiofocus()

/** 釋放焦點方法*/

public void abandonmusicfocus()

最後就是根據業務邏輯,在需要申請焦點的地方呼叫申請焦點的方法,在需要釋放焦點的地方呼叫釋放焦點的方法即可。

Android音訊焦點

ad 獲取音訊焦點 可以通過呼叫 requestaudiofocus 來實現,如果請求成功,返回 audiofocus request granted 您必須指定流型別 使用的是哪乙個流 和音訊焦點的型別 短暫的或是持久的 下面的 片斷演示了請求 音訊流的永久音訊焦點。abandon audio f...

Android音訊焦點(一)

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

Android 處理音訊焦點 AudioFocus

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