• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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帧长。 |