目錄介紹
如果覺得好,可以star一下,謝謝!當然也歡迎提出建議,萬事起於忽微,量變引起質變!
部落格大彙總,持續更新目錄說明,記錄所有開源專案和部落格
1.1 發現問題說明
別矇圈,這個就叫做音訊捕獲和丟棄焦點。
至於如何處理,可以看我的原始碼案例:
還可以看我的部落格,瀟湘劍雨,部落格大彙總:
1.2 為什麼要處理音訊焦點問題
2.1 偽**邏輯思路
2.2 請求和放棄音訊焦點
當瞬間丟失焦點,比如手機來了通知。前提是你的通知是震動或者聲音時,會短暫地將音量減小一半。當然你也可以減小三分之一,哈哈!
2.2.1 首先獲取audiomanager物件
maudiomanager = (audiomanager) content.getsystemservice(audio_service);
/**
* @return
*/public boolean requestaudiofocus()
/** */
public void abandonaudiofocus()
2.3 當音訊焦點發生變化處理邏輯/**
* 當音訊焦點發生變化的時候呼叫這個方法,在這裡可以處理邏輯
* 如果可以的話,請star吧
* @param focuschange 焦點改變
*/@override
public void onaudiofocuschange(int focuschange)
//獲取音量
volume = maudiomanager.getstreamvolume(audiomanager.stream_music);
if (mvolumewhenfocuslosstransientcanduck > 0 && volume ==
mvolumewhenfocuslosstransientcanduck / 2)
ispausedbyfocuslosstransient = false;
mvolumewhenfocuslosstransientcanduck = 0;
break;
case audiomanager.audiofocus_loss:
if (willplay())
break;
case audiomanager.audiofocus_loss_transient:
if (willplay())
break;
// 瞬間丟失焦點,如通知
case audiomanager.audiofocus_loss_transient_can_duck:
// 音量減小為一半
volume = maudiomanager.getstreamvolume(audiomanager.stream_music);
if (willplay() && volume > 0)
break;
default:
break;
}}
3.1 版本更新情況
3.2 個人部落格
關於音訊焦點和音訊競爭通道的問題
import android.media.audiomanager audiomanager am audiomanager this.getsystemservice context.audio service 申請的時候 am.requestaudiofocus null,audiomanage...
Directshow的音訊捕獲和回放測試1
dllregisterserver stdapi dllunregisterserver dllunregisterserver extern c bool winapi dllentrypoint hinstance,ulong,lpvoid bool apientry dllmain handl...
void 和Void 的詳細講解
一 void的含義,首先單詞void的常見中文意思為 空的 c語言中 void指 無型別 二 void的作用 1.用在函式當中 對函式返回值的限定。對函式引數的限定。如 void func void 表示func 這個函式沒有返回,輸入引數為空。一般省略出入的空引數寫為,void func 與之對應...