Android音訊焦點詳解(上)

2021-07-26 18:44:32 字數 1731 閱讀 6834

private

void

initdata()

});//10 非同步準備

mmediaplayer.prepareasync();

} catch (ioexception e)

}

我們重點看一下第2步 申請焦點

通過audiomanager物件呼叫requestaudiofocus方法,有三個引數

onaudiofocuschangelistener l,int streamtype,int durationhint

1 焦點變化的***

private audiomanager.onaudiofocuschangelistener maudiofocuschange = new audiomanager.onaudiofocuschangelistener() 

}};

2 streamtype音源型別,在audiomanager中定義

/** 通話 */

public

static

final

int stream_voice_call = audiosystem.stream_voice_call;

/** 系統聲音 */

public

static

final

int stream_system = audiosystem.stream_system;

/** 鈴聲 */

public

static

final

int stream_ring = audiosystem.stream_ring;

/** ** */

public

static

final

int stream_music = audiosystem.stream_music;

/** 鬧鈴聲 */

public

static

final

int stream_alarm = audiosystem.stream_alarm;

/** 通知音 */

public

static

final

int stream_notification = audiosystem.stream_notification;

/**@hide 藍芽** */

public

static

final

int stream_bluetooth_sco = audiosystem.stream_bluetooth_sco;

/**@hide 強制的系統聲音 */

public

static

final

int stream_system_enforced = audiosystem.stream_system_enforced;

/** dtmf撥號音 */

public

static

final

int stream_dtmf = audiosystem.stream_dtmf;

/**@hide 文字識別音 */

public

static

final

int stream_tts = audiosystem.stream_tts;

Android音訊焦點

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

Android音訊焦點(一)

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

Android 處理音訊焦點 AudioFocus

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