1# @ohos.bluetooth.a2dp (蓝牙a2dp模块) 2 3<!--Kit: Connectivity Kit--> 4<!--Subsystem: Communication--> 5<!--Owner: @enjoy_sunshine--> 6<!--Designer: @chengguohong; @tangjia15--> 7<!--Tester: @wangfeng517--> 8<!--Adviser: @zhang_yixin13--> 9 10本模块提供基于增强音频分发协议(Advanced Audio Distribution Profile,[A2DP](../../connectivity/terminology.md#a2dp))的蓝牙媒体音频能力,支持获取媒体播放状态和连接状态等方法。 11 12> **说明:** 13> 14> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 15 16 17## 导入模块 18 19```js 20import { a2dp } from '@kit.ConnectivityKit'; 21``` 22 23## BaseProfile 24 25type BaseProfile = baseProfile.BaseProfile 26 27基础Profile接口定义,提供监听和获取连接状态等公共能力。 28 29**系统能力**:SystemCapability.Communication.Bluetooth.Core 30 31| 类型 | 说明 | 32| ----------------------------- | ---------- | 33| [baseProfile.BaseProfile](js-apis-bluetooth-baseProfile.md#baseprofile) | 基础Profile接口定义。 | 34 35 36## a2dp.createA2dpSrcProfile 37 38createA2dpSrcProfile(): A2dpSourceProfile 39 40创建蓝牙媒体[A2DP Source](../../connectivity/terminology.md#a2dp-source)实例。通过该实例可使用本端作为A2DP Source设备的方法,如:获取和其他设备间的蓝牙媒体音频播放状态。 41 42**系统能力**:SystemCapability.Communication.Bluetooth.Core 43 44**返回值:** 45 46| 类型 | 说明 | 47| ----------------------------- | ---------- | 48| [A2dpSourceProfile](#a2dpsourceprofile) | 返回蓝牙媒体音频源实例。 | 49 50**错误码**: 51 52以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 53 54| 错误码ID | 错误信息 | 55| -------- | ---------------------------- | 56|401 | Invalid parameter. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3. Parameter verification failed. | 57|801 | Capability not supported. | 58 59 60**示例:** 61 62```js 63import { BusinessError } from '@kit.BasicServicesKit'; 64try { 65 let a2dpProfile = a2dp.createA2dpSrcProfile(); 66 console.info('a2dp success'); 67} catch (err) { 68 console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message); 69} 70``` 71 72 73## A2dpSourceProfile 74 75该实例表示蓝牙媒体音频中的[A2DP Source](../../connectivity/terminology.md#a2dp-source)角色。 76- 该类继承于[BaseProfile](#baseprofile),因此可以使用其父类中的方法。 77- 使用该类的方法前,需通过[createA2dpSrcProfile](#a2dpcreatea2dpsrcprofile)方法构造该类的实例。 78- 和该实例角色相对应的是[A2DP Sink](../../connectivity/terminology.md#a2dp-sink)。 79 80### getPlayingState 81 82getPlayingState(deviceId: string): PlayingState 83 84获取本端和对端设备间的媒体音频播放状态。 85 86**需要权限**:ohos.permission.ACCESS_BLUETOOTH 87 88**系统能力**:SystemCapability.Communication.Bluetooth.Core 89 90**参数:** 91 92| 参数名 | 类型 | 必填 | 说明 | 93| ------ | ------ | ---- | ------- | 94| deviceId | string | 是 | 对端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | 95 96**返回值:** 97 98| 类型 | 说明 | 99| ----------------------------- | ---------- | 100| [PlayingState](#playingstate) | 蓝牙媒体音频播放状态。 | 101 102**错误码**: 103 104以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[蓝牙服务子系统错误码](errorcode-bluetoothManager.md)。 105 106| 错误码ID | 错误信息 | 107| -------- | ---------------------------- | 108|201 | Permission denied. | 109|401 | Invalid parameter. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3. Parameter verification failed. | 110|801 | Capability not supported. | 111|2900001 | Service stopped. | 112|2900003 | Bluetooth disabled. | 113|2900004 | Profile not supported. | 114|2900099 | Operation failed. | 115 116**示例:** 117 118```js 119import { BusinessError } from '@kit.BasicServicesKit'; 120try { 121 let a2dpSrc = a2dp.createA2dpSrcProfile(); 122 let state = a2dpSrc.getPlayingState('XX:XX:XX:XX:XX:XX'); 123} catch (err) { 124 console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message); 125} 126``` 127 128 129## PlayingState 130 131枚举,蓝牙媒体音频播放状态。 132 133**系统能力**:SystemCapability.Communication.Bluetooth.Core 134 135| 名称 | 值 | 说明 | 136| ----------------- | ------ | ------- | 137| STATE_NOT_PLAYING | 0 | 未播放媒体音频。 | 138| STATE_PLAYING | 1 | 正在播放媒体音频。 | 139 140 141## CodecInfo<sup>11+</sup> 142 143蓝牙媒体音频使用的编解码器。 144 145**系统能力**:SystemCapability.Communication.Bluetooth.Core 146 147| 名称 | 类型 | 只读 | 可选 | 说明 | 148| ------------------- | ----------------------- | ---- | ---- | -------------------------------------- | 149| codecType | [CodecType](#codectype11) | 否 | 否 | 编解码器类型,默认值为CODEC_TYPE_SBC。 | 150| codecBitsPerSample | [CodecBitsPerSample](#codecbitspersample11) | 否 | 否 | 每个采样点的位深,默认值为CODEC_BITS_PER_SAMPLE_NONE。 | 151| codecChannelMode | [CodecChannelMode](#codecchannelmode11) | 否 | 否 | 编解码器的声道模式,默认值为CODEC_CHANNEL_MODE_NONE。 | 152| codecSampleRate | [CodecSampleRate](#codecsamplerate11) | 否 | 否 | 编解码器的采样率,默认值为CODEC_SAMPLE_RATE_NONE。 | 153| codecBitRate<sup>19+<sup/> | [CodecBitRate](#codecbitrate19) | 否 | 是 | 编解码器的码率,默认值为CODEC_BIT_RATE_ABR。 | 154| codecFrameLength<sup>19+<sup/> | [CodecFrameLength](#codecframelength19) | 否 | 是 |编解码器的帧长,默认值为CODEC_FRAME_LENGTH_10MS。 | 155 156## CodecInfoList<sup>19+</sup> 157 158蓝牙媒体音频编解码器支持的能力集合。不同编解码器支持的位深、声道模式、采样率、码率和帧长类型与音频接收器设备端能力有关。 159 160**系统能力**:SystemCapability.Communication.Bluetooth.Core 161 162| 名称 | 类型 | 只读 | 可选 | 说明 | 163| ------------------- | ----------------------- | ---- | ---- | -------------------------------------- | 164| codecType | [CodecType](#codectype11) | 否 | 否 | 编解码器类型。 | 165| codecBitsPerSampleArray | [CodecBitsPerSample](#codecbitspersample11)[] | 否 | 否 | 编解码器支持的位深能力集合。 | 166| codecChannelModeArray | [CodecChannelMode](#codecchannelmode11)[] | 否 | 否 | 编解码器支持的声道模式能力集合。 | 167| codecSampleRateArray | [CodecSampleRate](#codecsamplerate11)[] | 否 | 否 | 编解码器支持的采样率能力集合。 | 168| codecBitRateArray | [CodecBitRate](#codecbitrate19)[] | 否 | 否 | 编解码器支持的码率能力集合。 | 169| codecFrameLengthArray | [CodecFrameLength](#codecframelength19)[] | 否 | 否 | 编解码器支持的帧长能力集合。 | 170 171## CodecType<sup>11+</sup> 172 173枚举,蓝牙媒体音频编解码器类型。 174 175**系统能力**:SystemCapability.Communication.Bluetooth.Core 176 177| 名称 | 值 | 说明 | 178| ----------------- | ------ | ------- | 179| CODEC_TYPE_INVALID | -1 | 编解码器类型未知。 | 180| CODEC_TYPE_SBC | 0 | SBC | 181| CODEC_TYPE_AAC | 1 | AAC | 182| CODEC_TYPE_L2HC | 2 | L2HC | 183| CODEC_TYPE_L2HCST<sup>13+</sup> | 3 | L2HCST | 184| CODEC_TYPE_LDAC<sup>13+</sup> | 4 | LDAC | 185 186 187## CodecChannelMode<sup>11+</sup> 188 189枚举,蓝牙媒体音频编解码器的声道模式,表示音频播放时独立的空间信号路径数量。声道模式影响声音的立体感和空间定位。 190 191**系统能力**:SystemCapability.Communication.Bluetooth.Core 192 193| 名称 | 值 | 说明 | 194| ----------------- | ------ | ------- | 195| CODEC_CHANNEL_MODE_NONE | 0 | 声道未知。 | 196| CODEC_CHANNEL_MODE_MONO | 1 | 单声道。 | 197| CODEC_CHANNEL_MODE_STEREO | 2 | 双声道。 | 198 199 200## CodecBitsPerSample<sup>11+</sup> 201 202枚举,蓝牙媒体音频编解码器的位深,表示蓝牙音频信号在数字表示中使用的位数,单位为bit。位深决定每个采样点可以表示的动态范围和精度。 203 204**系统能力**:SystemCapability.Communication.Bluetooth.Core 205 206| 名称 | 值 | 说明 | 207| ----------------- | ------ | ------- | 208| CODEC_BITS_PER_SAMPLE_NONE | 0 | 位深未知。 | 209| CODEC_BITS_PER_SAMPLE_16 | 1 | 16bit | 210| CODEC_BITS_PER_SAMPLE_24 | 2 | 24bit | 211| CODEC_BITS_PER_SAMPLE_32 | 3 | 32bit | 212 213 214## CodecSampleRate<sup>11+</sup> 215 216枚举,蓝牙媒体音频编解码器的采样率,表示每秒对蓝牙音频采样的次数,单位为Hz。采样率的选择会影响音质和传输效率。 217 218**系统能力**:SystemCapability.Communication.Bluetooth.Core 219 220| 名称 | 值 | 说明 | 221| ----------------- | ------ | ------- | 222| CODEC_SAMPLE_RATE_NONE | 0 | 采样率未知。 | 223| CODEC_SAMPLE_RATE_44100 | 1 | 44.1kHz | 224| CODEC_SAMPLE_RATE_48000 | 2 | 48kHz | 225| CODEC_SAMPLE_RATE_88200 | 3 | 88.2kHz | 226| CODEC_SAMPLE_RATE_96000 | 4 | 96kHz | 227| CODEC_SAMPLE_RATE_176400 | 5 | 176.4kHz | 228| CODEC_SAMPLE_RATE_192000 | 6 | 192kHz | 229 230## CodecBitRate<sup>19+</sup> 231 232枚举,蓝牙媒体音频编解码器的码率,表示单位时间内音频数据的传输量,单位为kbps。码率影响音频音质和文件大小。 233 234**系统能力**:SystemCapability.Communication.Bluetooth.Core 235 236| 名称 | 值 | 说明 | 237| ----------------- | ------ | ------- | 238| CODEC_BIT_RATE_96000 | 0 | 96kbps | 239| CODEC_BIT_RATE_128000 | 1 | 128kbps | 240| CODEC_BIT_RATE_192000 | 2 | 192kbps | 241| CODEC_BIT_RATE_256000 | 3 | 256kbps | 242| CODEC_BIT_RATE_320000 | 4 | 320kbps | 243| CODEC_BIT_RATE_480000 | 5 | 480kbps | 244| CODEC_BIT_RATE_640000 | 6 | 640kbps | 245| CODEC_BIT_RATE_960000 | 7 | 960kbps | 246| CODEC_BIT_RATE_ABR | 8 | 自适应码率(根据网络条件自动调整)。| 247 248## CodecFrameLength<sup>19+</sup> 249 250枚举,蓝牙媒体音频编解码器的帧长,表示一帧音频数据播放的时长。 251 252**系统能力**:SystemCapability.Communication.Bluetooth.Core 253 254| 名称 | 值 | 说明 | 255| ----------------- | ------ | ------- | 256| CODEC_FRAME_LENGTH_5MS | 0 | 5ms帧长。 | 257| CODEC_FRAME_LENGTH_10MS | 1 | 10ms帧长。 |