esp32作为主机与蓝牙耳机耳麦进行双向通信的

jinkai
Posts: 11
Joined: Fri Jun 16, 2023 2:24 am

esp32作为主机与蓝牙耳机耳麦进行双向通信的

Postby jinkai » Fri Jun 16, 2023 2:48 am

新人求教,我的需求是esp32作为主机,连接蓝牙耳机,能够向蓝牙耳机发送音乐,并且能够接收蓝牙耳机上的麦克风的音频,实现双向音频的数据传输。
我的思路是将经典蓝牙例程的a2dp_source与a2dp_sink结合,但是目前无论是收还是发,都只能单向通信,我猜测sink或source的data call back无法同时使用,请问我的猜测正确吗,要实现我的需求还有什么方法呢?

蓝牙初始化、sink\source初始化 -> esp_a2d_sink\source_register_data_callback -> 连接蓝牙耳机 -> sink\source_data_callbackb被调用 -> 将收、发的音频数据做其他处理。
正如上面所说,sink\source_data_callbackb只有一个被调用。

jinkai
Posts: 11
Joined: Fri Jun 16, 2023 2:24 am

Re: esp32作为主机与蓝牙耳机耳麦进行双向通信的

Postby jinkai » Fri Jun 16, 2023 8:57 am

使用的开发版是esp32-Lyrat-mini, idf版本是 v5.02,思路是使用 A2DP 与 AVRCP库
esp_a2d_sink_connect 和 esp_a2d_source_connect均返回ESP_OK,但是只能程序只能从蓝牙耳机发出声音,无法获取蓝牙耳麦。esp_a2d_sink_register_data_callback注册的回调没有调用。

ESP_Boblane
Posts: 5
Joined: Fri Jun 25, 2021 1:43 am

Re: esp32作为主机与蓝牙耳机耳麦进行双向通信的

Postby ESP_Boblane » Fri Jun 16, 2023 9:06 am

esp32 的 a2dp 只能作为单一的角色使用,要么是 a2dp_source,要么是 a2dp_sink。如果你想实现双向通信,可以尝试使用 HFP。

Who is online

Users browsing this forum: No registered users and 116 guests