關(guān)于androidaudio路由策略的修改(續(xù))-創(chuàng)新互聯(lián)

關(guān)于android audio路由策略的修改(續(xù))

承接我的上一篇https://blog.51cto.com/8906847/2367935 文章。

創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,先為東山等服務(wù)建站,東山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為東山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

例如你在HUD抬頭顯示設(shè)備中,需要加入FMTX功能,即fm發(fā)射功能,另外需要在打開fmtx廣播時,音頻優(yōu)先走fmtx芯片,而不是走speaker。
那么可以這樣實現(xiàn):
1)方法一:通過特定狀態(tài)標(biāo)記,來修改audiopolicy的engine.cpp
2)方法二:是使用類似如下的方式:
如果是Java的,那么可以仿照類似如下的方式:
private AudioManager getAudioManager() {
AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
return audioManager;
}

getAudioManager().setWiredDeviceConnectionState(AudioManager.DEVICE_OUT_AUX_DIGITAL, 0, "", "fmtx"); 表示fmtx關(guān)閉。
getAudioManager().setWiredDeviceConnectionState(AudioManager.DEVICE_OUT_AUX_DIGITAL, 1, "", "fmtx");表示fmtx開啟。

這樣更新了audio available output device,并且通知到frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp。
當(dāng)然,你如果想自己增加一個DEVICE_OUT_FMTX類型也是可以的,但是更改的地方就比較多了,可以整個android代碼搜索DEVICE_OUT_AUX_DIGITAL和AUDIO_DEVICE_OUT_AUX_DIGITAL,找到需要修改的地方。

對應(yīng)的Engine.cpp對audio available output device的輸出選擇則修改如下:

diff --git a/frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp b/frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp
index 3dd84c3..5797595 100755
--- a/frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp
+++ b/frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp
@@ -614,6 +614,12 @@ audio_devices_t Engine::getDeviceForStrategyInt(routing_strategy strategy,

+do {

  • if (availableOutputDevicesType & AUDIO_DEVICE_OUT_AUX_DIGITAL ) {
  • device = availableOutputDevicesType & AUDIO_DEVICE_OUT_HEADPHONE;
  • break;
  • }
    +} while(0);

然后fmtx驅(qū)動把HEADPHONE的codec輸出,通過switch硬件輸出到fmtx的模塊上,而不是HEADPHONE上。

利用這種方法,也可以解決例如需求:
1)BT > FMTX > Speaker
2)而且 通話時,必須走speaker,因為AEC回聲消除的問題。通過藍(lán)牙音響的話,聲音延遲太大,AEC不好處理。

另外歡迎觀看我發(fā)布的各個課程: https://edu.51cto.com/lecturer/8896847.html
或者
我的3折優(yōu)惠的專題組合課程:
https://edu.51cto.com/topic/2362.html
或者h(yuǎn)ttps://edu.51cto.com/topic/2385.html

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁標(biāo)題:關(guān)于androidaudio路由策略的修改(續(xù))-創(chuàng)新互聯(lián)
當(dāng)前地址:http://bm7419.com/article34/cdgpse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、關(guān)鍵詞優(yōu)化Google、定制網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)