<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在connected idle狀態下向手機同步音量

藍牙 ? 來源:藍牙 ? 2023-10-20 12:22 ? 次閱讀

內容簡介

在QCC517x/QCC518x新的ADK下,headset工程如果有音量加減事件,只有當前有A2DP播放音樂或者HFP通話狀態下才會給手機發送事件,否則程序會忽略音量加減事件。本文介紹如何在connected idle狀態下向手機同步音量。

測試工具

MDE:MDE_WIN_2.8.0.37_x64

Toolkit:ADK Toolkit 1.2.16.21_x64

QACT:NULL

Bluesuite:NULL

Hardware:Qualcomm QCC3084

Software:adk-src-1-0_qtil_standard_oem_qcc518x-qcc308x,ADK-23.1-CS1-r00593.1 headset

Here we go

分析

假設音量加減是通過ui_input_volume_down和ui_input_volume_up兩個事件觸發的,經過查閱代碼發現,在volumeService_HandleUiInput中會對這兩個事件進行處理:

3d88dcc4-6ea3-11ee-939d-92fbcf53809c.png

由上圖代碼可得知,在處理ui_input_volume_down和ui_input_volume_up之前,會先通過GenericSource_IsValid(source)函數去判斷當前活躍的source是否有效,如果有效才會進行下一步的操作,如果無效就直接忽略了。

解決方法

所以要在手機有連接且沒有音樂播放的情況下,如果要同步A2DP的音量,則需要在handle_ui_input為FALSE的情況下,對audio_source_a2dp_1和audio_source_a2dp_2進行音量加減操作即可。

所以在volumeService_HandleUiInput函數的末尾添加以下內容即可:

3d9d79c2-6ea3-11ee-939d-92fbcf53809c.png

else

{

if(ui_input ==ui_input_volume_up || ui_input == ui_input_volume_down)

{

bdaddr* bd_addr = NULL;

unsigned num_addresses= 0;

unsigned charnum_a2dp_connected = 0;

if(BtDevice_GetAllHandsetBdAddr(&bd_addr, &num_addresses))

{

bool isConnected =FALSE;

for(unsigned chari=0; i

{

isConnected =FALSE;

avInstanceTaskData *theInst =appAvInstanceFindFromBdAddr(&bd_addr[i]);

isConnected =theInst && appA2dpIsConnected(theInst);

if(isConnected== TRUE)

{

num_a2dp_connected++;

}

}

free(bd_addr);

bd_addr = NULL;

}

if(num_a2dp_connected>= 1)

{

source.type =source_type_audio;

source.u.audio =audio_source_a2dp_1;

step_size =VolumeService_GetUiStepSize(AudioSources_GetVolume(source.u.audio).config);

if(ui_input ==ui_input_volume_down)

{

step_size =-step_size;

}

VolumeService_ChangeAudioSourceVolume(source.u.audio, step_size);

}

if(num_a2dp_connected>= 2)

{

source.type =source_type_audio;

source.u.audio =audio_source_a2dp_2;

step_size =VolumeService_GetUiStepSize(AudioSources_GetVolume(source.u.audio).config);

if(ui_input ==ui_input_volume_down)

{

step_size =-step_size;

}

VolumeService_ChangeAudioSourceVolume(source.u.audio, step_size);

}

}

}

增加以上代碼后同時連接兩個手機測試,發現在當前沒有audio輸出的情況下,如果操作headset的音量加減按鍵,就會同時向兩個手機發送音量加減指令了,如果當前有音樂播放,則繼續按照原始程序進行操作。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 手機
    +關注

    關注

    34

    文章

    6696

    瀏覽量

    155650
  • 函數
    +關注

    關注

    3

    文章

    4117

    瀏覽量

    61467
  • 測試工具
    +關注

    關注

    0

    文章

    48

    瀏覽量

    11856
  • ADK
    ADK
    +關注

    關注

    0

    文章

    7

    瀏覽量

    4929

原文標題:如何讓QCC308x的headset工程實現在沒有音樂播放情況下可以向手機上報音量加減的功能

文章出處:【微信號:TalkBT,微信公眾號:藍牙】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    電機在RUN狀態下,堵轉停住了的原因?

    電機在RUN狀態下,堵轉停住了,但是WB顯示的狀態IDLE;想請教一,一般來說電機堵轉WB是不是應該報過流的錯誤?直接進入IDLE是不是
    發表于 04-15 06:49

    stm8L如何在ROP激活狀態下,進行BootLoader的升級?

    求助:在stm8L如何在ROP激活狀態下,進行BootLoader的升級。調試發現在ROP激活狀態下,即使BOOTCLK_enable打開也無法進入boot模式,而是直接跳轉進入USER CODE,不知道有什么辦法可以在不解除讀
    發表于 04-17 07:16

    關于CC1101的WOR問題,請問SLLEP狀態下想切換進入WOR,是要先進入IDLE,然后延時發送sworrs以及swor指令嗎?

    )時間后,開始進行event1,標定,發送;還是說直接就開始event1,標定,發送,然后再進入SLEEP?2、SLLEP狀態下想切換進入WOR,是要先進入IDLE,然后延時發送sworrs以及swor指令嗎?3、利用sidle推出wor后,wor的內部時鐘是否還在計時
    發表于 06-06 06:37

    何在空閑狀態下啟動狀態同步從FIFO線程尋址?

    我們有一個同步奴隸FIFO設置和運行在40兆赫,與主動線程選擇的A0和A1引腳。似乎當在復位狀態下啟動狀態機時,即使地址引腳表示,例如線程2,寫入總是會轉到線程0。但是,一旦PKONCE第一次聲明
    發表于 04-03 14:09

    讓電源在所有負載狀態下都為連續

    濾波電容器。一種更簡單的方法是讓電源在所有負載狀態下都為連續。圖1是一個簡單的同步降壓轉換器,用于演示輸出電感中連續和非連續電流的負載瞬態響應。在低至空載的負載狀態下,輸出電感電流都一直保持連續,因為
    發表于 05-13 14:11

    何在遠程狀態下連續進行測量

    切換回本地狀態時,電壓讀數不斷變化(意味著連續進行測量),并且統計計數保持遞增(直到達到極限)。我可以使用INIT命令在遠程狀態下進行一次測量,但不能像在本地狀態那樣連續進行測量。如何啟用連續測量并獲得
    發表于 05-14 11:26

    資料下載:雙饋異步發電機在超同步狀態下的勵磁

    同步狀態下,相當于定子產生磁場,轉子切割磁場產生產生電流通過轉子繞組傳電網。
    發表于 07-06 07:26

    ARM狀態下的通用寄存器有哪些

    ARM狀態下的通用寄存器有哪些?ARM狀態下的程序計數器有哪些呢?
    發表于 10-21 06:47

    CH582M在連接狀態下,如何快速斷開連接進入廣播狀態?

    582M 藍牙鍵盤項目,藍牙處于連接狀態下,我想快速斷開當前連接,并改地址進入廣播狀態,但藍牙總進入Connected Advertising..,要等好久才會Advertising..。。在不擦除綁定信息的情況,有什么辦法可以
    發表于 08-01 07:34

    如何實現電路工作狀態下的要求?

    初始狀態:k1斷開燈泡1亮k2斷開燈泡2滅工作狀態:k1閉合燈泡1要求要亮(這個要怎么實現)?k2閉合燈泡2亮請問這個對于新手的我該如何實現電路工作狀態下的要求?感謝你們的回答
    發表于 12-02 17:58

    請問如何在運行調試狀態下觀察FreeRTOS的運行參數?

    STM32F103RE+FreeRTOS+MDK5+STlink21,如何在調試運行狀態下觀察:堆棧使用、任務資源使用等參數? 2,已經在FreeRTOSConfig.h中打開以下
    發表于 09-28 06:01

    并聯狀態流壓互補同步回路仿真

    中的Simulink模塊,搭建了恒流狀態下的分流閥同步回路、流一壓互補同步回路和并聯狀態流一壓互補同步回路,研究了3種仿真回路的偏載
    發表于 03-07 14:36 ?0次下載
    并聯<b class='flag-5'>狀態</b>流壓互補<b class='flag-5'>同步</b>回路仿真

    三星可折疊手機在折疊狀態下會變得像一個4英寸屏的手機

    爆料稱,三星可折疊手機的屏幕分別為4.6英寸、7.3英寸:主屏展開尺寸為7.3英寸,折疊狀態下則會變得像一個4英寸屏的手機。這樣的設計也帶來了手機整體厚度和價格的增加。
    發表于 11-06 10:04 ?652次閱讀

    華為手機解鎖狀態下抬手直接就能付款

    據數碼博主@長安數碼君爆料,華為智感支付功能目前已支持微信支付,手機解鎖狀態下抬手直接就能付款。
    的頭像 發表于 01-15 13:51 ?4468次閱讀

    NB-IoT終端在不同工作狀態下的簡要分析

    1.NB-IoT在發送數據時處于激活狀態,超過非活動計數器配置的超時時間后,將進入Idle空閑狀態; 2.eDRX機制是在一個完整的Idle過程中引入的,包括幾個eDRX周期。eDRX
    發表于 07-02 15:08 ?802次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>