# 执行蓝牙 A2DP 发送功能

Source: [https://docs.qualcomm.com/doc/80-70017-13SC/topic/bluez-perform-bluetooth-a2dp-source-functions.html](https://docs.qualcomm.com/doc/80-70017-13SC/topic/bluez-perform-bluetooth-a2dp-source-functions.html)

用户可以使用 `bluetoothctl` 菜单、 `menu transport` 子菜单和 `paplay` 命令执行蓝牙 A2DP 发送功能。

开始之前，请设置设备并转至[设置设备的 A2DP 功能](https://docs.qualcomm.com/doc/80-70017-13SC/topic/bluez-a2dp.html#bluez-a2dp__section_fwp_mx5_mcc_navyanka_08-25-24-1121-38-413)中所述的所需菜单。

## 连接远程设备

要以 A2DP 发送端角色连接远程设备，请从 `bluetoothctl` 菜单运行以下命令：

    connect <bt_address>Copy to clipboard

**参数**

`<bt_address>` 是远程设备的蓝牙地址。

**示例**

要使用 `<bt_address>` `17:1A:35:8D:A2:A4` 连接到已配对的远程设备，请运行以下命令：

    connect 17:1A:35:8D:A2:A4Copy to clipboard

**示例输出**

[bluetooth]# connect 17:1A:35:8D:A2:A4
    Attempting to connect to 17:1A:35:8D:A2:A4
    [CHG] Device 17:1A:35:8D:A2:A4 Connected: yes
    [CHG] Device 17:1A:35:8D:A2:A4 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
    [CHG] Device 17:1A:35:8D:A2:A4 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
    [CHG] Device 17:1A:35:8D:A2:A4 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
    [CHG] Device 17:1A:35:8D:A2:A4 ServicesResolved: yes
    [CHG] Device 17:1A:35:8D:A2:A4 Bonded: yes
    [CHG] Device 17:1A:35:8D:A2:A4 Paired: yes
    [NEW] Endpoint /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1
    [NEW] Endpoint /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep2
    [NEW] Transport /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0
    Connection successful
    [CHG] Transport /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0 State: active
    [CHG] Transport /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0 Volume: 0x0040 (64)
    [CHG] Transport /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0 State: idle
    [CHG] Transport /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0 Volume: 0x0044 (68)
    [CHG] Transport /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0 Volume: 0x0040 (64)
    [MySoundbar]#Copy to clipboard

## 列出可用的传输

要列出可用的传输，请从 `menu
                    transport` 子菜单运行以下命令：

    listCopy to clipboard

**示例输出**

[MySoundbar]# list
    Transport /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0Copy to clipboard

## 获取有关 codec 功能的信息

要获取有关传输 codec 功能的信息，请从 `menu transport` 子菜单运行以下命令：

    show <transport>Copy to clipboard

**参数**

`<transport>` 为传输路径。

**示例**

要获取有关 `<transport>` `/org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0` codec 功能的信息，请运行以下命令：

    show /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0Copy to clipboard

**示例输出**

[MySoundbar]# show /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0
    Transport /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0
            UUID: 0000110a-0000-1000-8000-00805f9b34fb
            Codec: 0x00 (0)
            Configuration: 0x21 (33)
            Configuration: 0x15 (21)
            Configuration: 0x02 (2)
            Configuration: 0x35 (53)
            Device: /org/bluez/hci0/dev_17_1A_35_8D_A2_A4
            State: idle
            Volume: 0x0040 (64)Copy to clipboard

## 设置绝对音量

注释： 
                
确保 DUT 和远程设备支持 `setabsvolume` 功能。

要设置传输的绝对音量，请从 `menu transport` 子菜单运行以下命令：

    volume <transport> [value]Copy to clipboard

**参数**

- `<transport>` 为传输路径。
- `[value]` 是音量大小。

**示例**

要将 `<transport>` `/org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0` 的绝对音量设置为 `50`，可运行以下命令：

    volume /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0 50Copy to clipboard

**示例输出**

[MySoundbar]# volume /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0 50
    Changing Volume succeeded
    [CHG] Transport /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0 Volume: 0x0032 (50)
    [MySoundbar]# volume /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd0 10
    Changing Volume succeededCopy to clipboard

## 播放音频文件

注释：
- DUT 不支持音频播放器。使用 `paplay` 命令播放音乐。
- 仅支持 PCM 音频样本。

要播放 DUT 中的歌曲，请执行以下操作：

1. 运行 SSH。
2. 通过运行以下命令播放 WAV 文件：

        paplay <audio_filepath> -vCopy to clipboard

    **参数**

    `<audio_filepath>` 是 WAV 文件的文件路径。

    **示例**

要播放 /tmp/pcmtest.wav 处的 WAV 文件，请运行以下命令：

        paplay /tmp/pcmtest.wav -vCopy to clipboard

    **示例输出**

sh-5.1# paplay /tmp/pcmtest.wav -v
        Opening a playback stream with sample specification 's16le 2ch 44100Hz' and channel map 'front-left,front-right'.
        Connection established.
        Strean successfully created.
        Buffer metrics: maxlength=4194304, tlength=352800, prebuf=349276, minreq=3528
        Using sample spec 's16le 2ch 44100Hz', channel map 'front-left,front-right'.
        Connected to device bluez_sink.20_19_D8_36_90_40.a2dp_sink (index: 4, suspended: no).
        Stream started.
        Time: 4.427 sec; Latency: 2042656 usec.Copy to clipboard

## 获取接收端列表

要在连接多个设备时获取接收端列表，请在 SSH中运行以下命令：

    pactl list sinks shortCopy to clipboard

**示例输出**

sh-5.1# pactl list sinks short
    0 low-latency0    module-pal-card.c    s16le 2ch 48000Hz    SUSPENDED
    1 deep-buffer0    module-pal-card.c    s16le 2ch 48000Hz    SUSPENDED
    2 offload0        module-pal-card.c    s16le 2ch 48000Hz    SUSPENDED
    3 voip-rx0        module-pal-card.c    s16le 2ch 48000Hz    SUSPENDED
    4 bluez_sink.20_19_D8_36_90_40.a2dp_sink    module-bluez5-device.c    s16le 2ch 44100Hz    SUSPENDEDCopy to clipboard

## 在特定接收端上播放音频

要在连接多个设备时在特定接收端上播放音频，请在 SSH中运行以下命令：

    paplay <audio_filepath> --device=<device_name> -vCopy to clipboard

**参数**

- `<audio_filepath>` 是 WAV 文件的文件路径。
- `<device_name>` 是接收端名称。

**示例**

要在 `bluez_sink.20_19_D8_36_90_40.a2dp_sink` 接收端上播放 pcmtest.wav，请运行以下命令：

    paplay pcmtest.wav --device=bluez_sink.20_19_D8_36_90_40.a2dp_sink -vCopy to clipboard

**示例输出**

sh-5.1# paplay pcmtest.wav --device=bluez_sink.20_19_D8_36_90_40.a2dp_sink -v
    Opening a playback stream with sample specification 's16le 2ch 44100Hz' and channel map 'front-left,front-right'.
    Connection established.
    Stream successfully created.
    Buffer metrics: maxlength=4194304, tlength=352800, prebuf=349276, minreq=3528
    Using sample spec 's16le 2ch 44100Hz', channel map 'front-left,front-right'.
    Connected to device bluez_sink.20_19_D8_36_90_40.a2dp_sink (index: 4, suspended: no).
    Stream started.
    Time: 2.925 sec; Latency: 2062081 usec.Copy to clipboard

## 断开对端设备的连接

要断开远程设备的连接，请从 `bluetoothctl` 菜单运行以下命令：

    disconnect <bt_address>Copy to clipboard

**参数**

`<bt_address>` 是远程设备的蓝牙地址。

**示例**

要断开与 `<bt_address>` `17:1A:35:8D:A2:A4` 配对的远程设备，请运行以下命令：

    disconnect 17:1A:35:8D:A2:A4Copy to clipboard

**示例输出**

[MySoundbar]# disconnect 17:1A:35:8D:A2:A4
    Attempting to disconnect from 17:1A:35:8D:A2:A4
    [DEL] Transport /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1/fd2
    [DEL] Endpoint /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep1
    [DEL] Endpoint /org/bluez/hci0/dev_17_1A_35_8D_A2_A4/sep2
    [CHG] Device 17:1A:35:8D:A2:A4 ServicesResolved: no
    Successful disconnected
    [CHG] Device 17:1A:35:8D:A2:A4 Connected: noCopy to clipboard

**上一级主题：** [高级音频分发配置文件](https://docs.qualcomm.com/doc/80-70017-13SC/topic/bluez-a2dp.html)

Last Published: Jan 23, 2025

[Previous Topic
高级音频分发配置文件](https://docs.qualcomm.com/bundle/publicresource/80-70017-13SC/topics/bluez-a2dp.md) [Next Topic
执行蓝牙 A2DP 接收端功能](https://docs.qualcomm.com/bundle/publicresource/80-70017-13SC/topics/bluez-perform-bluetooth-a2dp-sink-functions.md)