1# @ohos.multimedia.avsession (媒体会话管理) 2 3媒体会话管理提供媒体播控相关功能的接口,目的是让应用接入播控中心。 4 5该模块提供以下媒体会话相关的常用功能: 6 7- [AVSession](#avsession10) : 会话,可用于设置元数据、播放状态信息等操作。 8- [AVSessionController](#avsessioncontroller10): 会话控制器,可用于查看会话ID,完成对会话发送命令及事件,获取会话元数据、播放状态信息等操作。 9- [AVCastController](#avcastcontroller10): 投播控制器,可用于投播场景下,完成播放控制、远端播放状态监听、远端播放状态信息获取等操作。 10 11> **说明:** 12> 13> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 14 15## 导入模块 16 17```ts 18import { avSession } from '@kit.AVSessionKit'; 19``` 20 21## avSession.createAVSession<sup>10+</sup> 22 23createAVSession(context: Context, tag: string, type: AVSessionType): Promise\<AVSession> 24 25创建会话对象,一个Ability只能存在一个会话,重复创建会失败,结果通过Promise异步回调方式返回。 26 27**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 28 29**系统能力:** SystemCapability.Multimedia.AVSession.Core 30 31**参数:** 32 33| 参数名 | 类型 | 必填 | 说明 | 34| ------ | ------------------------------- | ---- | ------------------------------ | 35| context| [Context](../apis-ability-kit/js-apis-inner-app-context.md) | 是| 需要使用UIAbilityContext,用于系统获取应用组件的相关信息。 | 36| tag | string | 是 | 会话的自定义名称。 | 37| type | [AVSessionType](#avsessiontype10) | 是 | 会话类型。 | 38 39**返回值:** 40 41| 类型 | 说明 | 42| --------------------------------- | ------------------------------------------------------------ | 43| Promise<[AVSession](#avsession10)\> | Promise对象。回调返回会话实例对象,可用于获取会话ID,以及设置元数据、播放状态,发送按键事件等操作。| 44 45**错误码:** 46 47以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 48 49| 错误码ID | 错误信息 | 50| -------- | ---------------------------------------- | 51| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 52| 6600101 | Session service exception. | 53 54**示例:** 55 56```ts 57import { BusinessError } from '@kit.BasicServicesKit'; 58 59let currentAVSession: avSession.AVSession; 60let tag = "createNewSession"; 61let context: Context = getContext(this); 62let sessionId: string; // 供后续函数入参使用 63 64avSession.createAVSession(context, tag, "audio").then((data: avSession.AVSession) => { 65 currentAVSession = data; 66 sessionId = currentAVSession.sessionId; 67 console.info(`CreateAVSession : SUCCESS : sessionId = ${sessionId}`); 68}).catch((err: BusinessError) => { 69 console.info(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`); 70}); 71``` 72 73## avSession.createAVSession<sup>10+</sup> 74 75createAVSession(context: Context, tag: string, type: AVSessionType, callback: AsyncCallback\<AVSession>): void 76 77创建会话对象,一个Ability只能存在一个会话,重复创建会失败,结果通过callback异步回调方式返回。 78 79**系统能力:** SystemCapability.Multimedia.AVSession.Core 80 81**参数:** 82 83| 参数名 | 类型 | 必填 | 说明 | 84| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ | 85| context| [Context](../apis-ability-kit/js-apis-inner-app-context.md) | 是| 需要使用UIAbilityContext,用于系统获取应用组件的相关信息。 | 86| tag | string | 是 | 会话的自定义名称。 | 87| type | [AVSessionType](#avsessiontype10) | 是 | 会话类型。 | 88| callback | AsyncCallback<[AVSession](#avsession10)\> | 是 | 回调函数。回调返回会话实例对象,可用于获取会话ID,以及设置元数据、播放状态,发送按键事件等操作。 | 89 90**错误码:** 91 92以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 93 94| 错误码ID | 错误信息 | 95| -------- | ---------------------------------------- | 96| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 97| 6600101 | Session service exception. | 98 99**示例:** 100 101```ts 102import { BusinessError } from '@kit.BasicServicesKit'; 103 104let currentAVSession: avSession.AVSession; 105let tag = "createNewSession"; 106let context: Context = getContext(this); 107let sessionId: string; // 供后续函数入参使用 108 109avSession.createAVSession(context, tag, "audio", (err: BusinessError, data: avSession.AVSession) => { 110 if (err) { 111 console.error(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`); 112 } else { 113 currentAVSession = data; 114 sessionId = currentAVSession.sessionId; 115 console.info(`CreateAVSession : SUCCESS : sessionId = ${sessionId}`); 116 } 117}); 118``` 119 120## ProtocolType<sup>11+</sup> 121 122远端设备支持的协议类型的枚举。 123 124**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 125 126**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 127 128| 名称 | 值 | 说明 | 129| --------------------------- | ---- | ----------- | 130| TYPE_LOCAL<sup>11+</sup> | 0 | 本地设备,包括设备本身的内置扬声器或音频插孔、A2DP 设备。 | 131| TYPE_CAST_PLUS_STREAM<sup>11+</sup> | 2 | Cast+的Stream模式。表示媒体正在其他设备上展示。 | 132| TYPE_DLNA<sup>12+</sup> | 4 | DLNA协议。表示媒体正在其他设备上展示。 | 133 134## AVSessionType<sup>10+<sup> 135 136type AVSessionType = 'audio' | 'video' | 'voice_call' | 'video_call' 137 138当前会话支持的会话类型。 139 140该类型可取的值为下表字符串。 141 142**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 143 144**系统能力:** SystemCapability.Multimedia.AVSession.Core 145 146| 类型 | 说明 | 147| ----- | ---- | 148| 'audio' | 音频 | 149| 'video' | 视频 | 150| 'voice_call'<sup>11+<sup> | 音频通话 | 151| 'video_call'<sup>12+<sup> | 视频通话 | 152 153## AVSession<sup>10+</sup> 154 155调用[avSession.createAVSession](#avsessioncreateavsession10)后,返回会话的实例,可以获得会话ID,完成设置元数据,播放状态信息等操作。 156 157### 属性 158 159**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 160 161**系统能力:** SystemCapability.Multimedia.AVSession.Core 162 163| 名称 | 类型 | 可读 | 可写 | 说明 | 164| :-------- | :----- | :--- | :--- | :---------------------------- | 165| sessionId | string | 是 | 否 | AVSession对象唯一的会话标识。 | 166| sessionType| [AVSessionType](#avsessiontype10) | 是 | 否 | AVSession会话类型。 | 167 168**示例:** 169 170```ts 171let sessionId: string = currentAVSession.sessionId; 172let sessionType: avSession.AVSessionType = currentAVSession.sessionType; 173``` 174 175### setAVMetadata<sup>10+</sup> 176 177setAVMetadata(data: AVMetadata): Promise\<void> 178 179设置会话元数据。结果通过Promise异步回调方式返回。 180 181**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 182 183**系统能力:** SystemCapability.Multimedia.AVSession.Core 184 185**参数:** 186 187| 参数名 | 类型 | 必填 | 说明 | 188| ------ | ------------------------- | ---- | ------------ | 189| data | [AVMetadata](#avmetadata10) | 是 | 会话元数据。 | 190 191**返回值:** 192 193| 类型 | 说明 | 194| -------------- | ----------------------------- | 195| Promise\<void> | Promise对象。当元数据设置成功,无返回结果,否则返回错误对象。 | 196 197**错误码:** 198 199以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 200 201| 错误码ID | 错误信息 | 202| -------- | ---------------------------------------- | 203| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 204| 6600101 | Session service exception. | 205| 6600102 | The session does not exist. | 206 207**示例:** 208 209```ts 210import { BusinessError } from '@kit.BasicServicesKit'; 211 212let metadata: avSession.AVMetadata = { 213 assetId: "121278", 214 title: "lose yourself", 215 artist: "Eminem", 216 author: "ST", 217 album: "Slim shady", 218 writer: "ST", 219 composer: "ST", 220 duration: 2222, 221 mediaImage: "https://www.example.com/example.jpg", 222 subtitle: "8 Mile", 223 description: "Rap", 224 // LRC中有两类元素:一种是时间标签+歌词,一种是ID标签。 225 // 例如:[00:25.44]xxx\r\n[00:26.44]xxx\r\n 226 lyric: "lrc格式歌词内容", 227 previousAssetId: "121277", 228 nextAssetId: "121279" 229}; 230currentAVSession.setAVMetadata(metadata).then(() => { 231 console.info('SetAVMetadata successfully'); 232}).catch((err: BusinessError) => { 233 console.error(`SetAVMetadata BusinessError: code: ${err.code}, message: ${err.message}`); 234}); 235``` 236 237### setAVMetadata<sup>10+</sup> 238 239setAVMetadata(data: AVMetadata, callback: AsyncCallback\<void>): void 240 241设置会话元数据。结果通过callback异步回调方式返回。 242 243**系统能力:** SystemCapability.Multimedia.AVSession.Core 244 245**参数:** 246 247| 参数名 | 类型 | 必填 | 说明 | 248| -------- | ------------------------- | ---- | ------------------------------------- | 249| data | [AVMetadata](#avmetadata10) | 是 | 会话元数据。 | 250| callback | AsyncCallback\<void> | 是 | 回调函数。当元数据设置成功,err为undefined,否则返回错误对象。 | 251 252**错误码:** 253 254以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 255 256| 错误码ID | 错误信息 | 257| -------- | ---------------------------------------- | 258| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 259| 6600101 | Session service exception. | 260| 6600102 | The session does not exist. | 261 262**示例:** 263 264```ts 265import { BusinessError } from '@kit.BasicServicesKit'; 266 267let metadata: avSession.AVMetadata = { 268 assetId: "121278", 269 title: "lose yourself", 270 artist: "Eminem", 271 author: "ST", 272 album: "Slim shady", 273 writer: "ST", 274 composer: "ST", 275 duration: 2222, 276 mediaImage: "https://www.example.com/example.jpg", 277 subtitle: "8 Mile", 278 description: "Rap", 279 // LRC中有两类元素:一种是时间标签+歌词,一种是ID标签。 280 // 例如:[00:25.44]xxx\r\n[00:26.44]xxx\r\n 281 lyric: "lrc格式歌词内容", 282 previousAssetId: "121277", 283 nextAssetId: "121279" 284}; 285currentAVSession.setAVMetadata(metadata, (err: BusinessError) => { 286 if (err) { 287 console.error(`SetAVMetadata BusinessError: code: ${err.code}, message: ${err.message}`); 288 } else { 289 console.info('SetAVMetadata successfully'); 290 } 291}); 292``` 293 294### setCallMetadata<sup>11+</sup> 295 296setCallMetadata(data: CallMetadata): Promise\<void> 297 298设置通话会话元数据。结果通过Promise异步回调方式返回。 299 300**系统能力:** SystemCapability.Multimedia.AVSession.Core 301 302**参数:** 303 304| 参数名 | 类型 | 必填 | 说明 | 305| ------ | ------------------------- | ---- | ------------ | 306| data | [CallMetadata](#callmetadata11) | 是 | 通话会话元数据。 | 307 308**返回值:** 309 310| 类型 | 说明 | 311| -------------- | ----------------------------- | 312| Promise\<void> | Promise对象。当通话元数据设置成功,无返回结果,否则返回错误对象。 | 313 314**错误码:** 315 316以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 317 318| 错误码ID | 错误信息 | 319| -------- | ---------------------------------------- | 320| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 321| 6600101 | Session service exception. | 322| 6600102 | The session does not exist. | 323 324**示例:** 325 326```ts 327import { image } from '@kit.ImageKit'; 328import { resourceManager } from '@kit.LocalizationKit'; 329import { BusinessError } from '@kit.BasicServicesKit'; 330 331let value = await resourceManager.getSystemResourceManager().getRawFileContent('IMAGE_URI'); 332 let imageSource = await image.createImageSource(value.buffer); 333 let imagePixel = await imageSource.createPixelMap({desiredSize:{width: 150, height: 150}}); 334 let calldata: avSession.CallMetadata = { 335 name: "xiaoming", 336 phoneNumber: "111xxxxxxxx", 337 avatar: imagePixel 338 }; 339currentAVSession.setCallMetadata(calldata).then(() => { 340 console.info('setCallMetadata successfully'); 341}).catch((err: BusinessError) => { 342 console.error(`setCallMetadata BusinessError: code: ${err.code}, message: ${err.message}`); 343}); 344``` 345 346### setCallMetadata<sup>11+</sup> 347 348setCallMetadata(data: CallMetadata, callback: AsyncCallback\<void>): void 349 350设置通话会话元数据。结果通过callback异步回调方式返回。 351 352**系统能力:** SystemCapability.Multimedia.AVSession.Core 353 354**参数:** 355 356| 参数名 | 类型 | 必填 | 说明 | 357| -------- | ------------------------- | ---- | ------------------------------------- | 358| data | [CallMetadata](#callmetadata11) | 是 | 通话会话元数据。 | 359| callback | AsyncCallback\<void> | 是 | 回调函数。当通话元数据设置成功,err为undefined,否则返回错误对象。 | 360 361**错误码:** 362 363以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 364 365| 错误码ID | 错误信息 | 366| -------- | ---------------------------------------- | 367| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 368| 6600101 | Session service exception. | 369| 6600102 | The session does not exist. | 370 371**示例:** 372 373```ts 374import { image } from '@kit.ImageKit'; 375import { resourceManager } from '@kit.LocalizationKit'; 376import { BusinessError } from '@kit.BasicServicesKit'; 377 378async function setCallMetadata() { 379 let value = await resourceManager.getSystemResourceManager().getRawFileContent('IMAGE_URI'); 380 let imageSource = await image.createImageSource(value.buffer); 381 let imagePixel = await imageSource.createPixelMap({desiredSize:{width: 150, height: 150}}); 382 let calldata: avSession.CallMetadata = { 383 name: "xiaoming", 384 phoneNumber: "111xxxxxxxx", 385 avatar: imagePixel 386 }; 387 currentAVSession.setCallMetadata(calldata, (err: BusinessError) => { 388 if (err) { 389 console.error(`setCallMetadata BusinessError: code: ${err.code}, message: ${err.message}`); 390 } else { 391 console.info('setCallMetadata successfully'); 392 } 393 }); 394} 395``` 396 397### setAVCallState<sup>11+</sup> 398 399setAVCallState(state: AVCallState): Promise\<void> 400 401设置通话状态。结果通过Promise异步回调方式返回。 402 403**系统能力:** SystemCapability.Multimedia.AVSession.Core 404 405**参数:** 406 407| 参数名 | 类型 | 必填 | 说明 | 408| ------ | ------------------------- | ---- | ------------ | 409| state | [AVCallState](#avcallstate11) | 是 | 通话状态。 | 410 411**返回值:** 412 413| 类型 | 说明 | 414| -------------- | ----------------------------- | 415| Promise\<void> | Promise对象。当通话元数据设置成功,无返回结果,否则返回错误对象。 | 416 417**错误码:** 418 419以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 420 421| 错误码ID | 错误信息 | 422| -------- | ---------------------------------------- | 423| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 424| 6600101 | Session service exception. | 425| 6600102 | The session does not exist. | 426 427**示例:** 428 429```ts 430import { BusinessError } from '@kit.BasicServicesKit'; 431 432let calldata: avSession.AVCallState = { 433 state: avSession.CallState.CALL_STATE_ACTIVE, 434 muted: false 435}; 436currentAVSession.setAVCallState(calldata).then(() => { 437 console.info('setAVCallState successfully'); 438}).catch((err: BusinessError) => { 439 console.error(`setAVCallState BusinessError: code: ${err.code}, message: ${err.message}`); 440}); 441``` 442 443### setAVCallState<sup>11+</sup> 444 445setAVCallState(state: AVCallState, callback: AsyncCallback\<void>): void 446 447设置通话状态。结果通过callback异步回调方式返回。 448 449**系统能力:** SystemCapability.Multimedia.AVSession.Core 450 451**参数:** 452 453| 参数名 | 类型 | 必填 | 说明 | 454| -------- | ------------------------- | ---- | ------------------------------------- | 455| state | [AVCallState](#avcallstate11) | 是 | 通话状态。 | 456| callback | AsyncCallback\<void> | 是 | 回调函数。当通话元数据设置成功,err为undefined,否则返回错误对象。 | 457 458**错误码:** 459 460以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 461 462| 错误码ID | 错误信息 | 463| -------- | ---------------------------------------- | 464| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 465| 6600101 | Session service exception. | 466| 6600102 | The session does not exist. | 467 468**示例:** 469 470```ts 471import { BusinessError } from '@kit.BasicServicesKit'; 472 473let avcalldata: avSession.AVCallState = { 474 state: avSession.CallState.CALL_STATE_ACTIVE, 475 muted: false 476}; 477currentAVSession.setAVCallState(avcalldata, (err: BusinessError) => { 478 if (err) { 479 console.error(`setAVCallState BusinessError: code: ${err.code}, message: ${err.message}`); 480 } else { 481 console.info('setAVCallState successfully'); 482 } 483}); 484``` 485 486### setAVPlaybackState<sup>10+</sup> 487 488setAVPlaybackState(state: AVPlaybackState): Promise\<void> 489 490设置会话播放状态。结果通过Promise异步回调方式返回。 491 492**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 493 494**系统能力:** SystemCapability.Multimedia.AVSession.Core 495 496**参数:** 497 498| 参数名 | 类型 | 必填 | 说明 | 499| ------ | ----------------------------------- | ---- | ---------------------------------------------- | 500| state | [AVPlaybackState](#avplaybackstate10) | 是 | 会话播放状态,包括状态、倍数、循环模式等信息。 | 501 502**返回值:** 503 504| 类型 | 说明 | 505| -------------- | ----------------------------- | 506| Promise\<void> | Promise对象。当播放状态设置成功,无返回结果,否则返回错误对象。 | 507 508**错误码:** 509 510以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 511 512| 错误码ID | 错误信息 | 513| -------- | ---------------------------------------- | 514| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 515| 6600101 | Session service exception. | 516| 6600102 | The session does not exist. | 517 518**示例:** 519 520```ts 521import { BusinessError } from '@kit.BasicServicesKit'; 522 523let playbackState: avSession.AVPlaybackState = { 524 state:avSession.PlaybackState.PLAYBACK_STATE_PLAY, 525 speed: 1.0, 526 position:{elapsedTime:10, updateTime:(new Date()).getTime()}, 527 bufferedTime:1000, 528 loopMode:avSession.LoopMode.LOOP_MODE_SINGLE, 529 isFavorite:true 530}; 531currentAVSession.setAVPlaybackState(playbackState).then(() => { 532 console.info('SetAVPlaybackState successfully'); 533}).catch((err: BusinessError) => { 534 console.error(`SetAVPlaybackState BusinessError: code: ${err.code}, message: ${err.message}`); 535}); 536``` 537 538### setAVPlaybackState<sup>10+</sup> 539 540setAVPlaybackState(state: AVPlaybackState, callback: AsyncCallback\<void>): void 541 542设置会话播放状态。结果通过callback异步回调方式返回。 543 544**系统能力:** SystemCapability.Multimedia.AVSession.Core 545 546**参数:** 547 548| 参数名 | 类型 | 必填 | 说明 | 549| -------- | ----------------------------------- | ---- | ---------------------------------------------- | 550| state | [AVPlaybackState](#avplaybackstate10) | 是 | 会话播放状态,包括状态、倍数、循环模式等信息。 | 551| callback | AsyncCallback\<void> | 是 | 回调函数。当播放状态设置成功,err为undefined,否则返回错误对象。 | 552 553**错误码:** 554 555以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 556 557| 错误码ID | 错误信息 | 558| -------- | ---------------------------------------- | 559| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 560| 6600101 | Session service exception. | 561| 6600102 | The session does not exist. | 562 563**示例:** 564 565```ts 566import { BusinessError } from '@kit.BasicServicesKit'; 567 568let PlaybackState: avSession.AVPlaybackState = { 569 state:avSession.PlaybackState.PLAYBACK_STATE_PLAY, 570 speed: 1.0, 571 position:{elapsedTime:10, updateTime:(new Date()).getTime()}, 572 bufferedTime:1000, 573 loopMode:avSession.LoopMode.LOOP_MODE_SINGLE, 574 isFavorite:true 575}; 576currentAVSession.setAVPlaybackState(PlaybackState, (err: BusinessError) => { 577 if (err) { 578 console.error(`SetAVPlaybackState BusinessError: code: ${err.code}, message: ${err.message}`); 579 } else { 580 console.info('SetAVPlaybackState successfully'); 581 } 582}); 583``` 584 585### setLaunchAbility<sup>10+</sup> 586 587setLaunchAbility(ability: WantAgent): Promise\<void> 588 589设置一个WantAgent用于拉起会话的Ability。结果通过Promise异步回调方式返回。 590 591**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 592 593**系统能力:** SystemCapability.Multimedia.AVSession.Core 594 595**参数:** 596 597| 参数名 | 类型 | 必填 | 说明 | 598| ------- | --------------------------------------------- | ---- | ----------------------------------------------------------- | 599| ability | [WantAgent](../apis-ability-kit/js-apis-app-ability-wantAgent.md) | 是 | 应用的相关属性信息,如bundleName,abilityName,deviceId等。 | 600 601**返回值:** 602 603| 类型 | 说明 | 604| -------------- | ----------------------------- | 605| Promise\<void> | Promise对象。当Ability设置成功,无返回结果,否则返回错误对象。 | 606 607**错误码:** 608 609以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 610 611| 错误码ID | 错误信息 | 612| -------- | ---------------------------------------- | 613| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 614| 6600101 | Session service exception. | 615| 6600102 | The session does not exist. | 616 617**示例:** 618 619```ts 620import { wantAgent } from '@kit.AbilityKit'; 621import { BusinessError } from '@kit.BasicServicesKit'; 622 623// WantAgentInfo对象 624let wantAgentInfo: wantAgent.WantAgentInfo = { 625 wants: [ 626 { 627 deviceId: "deviceId", 628 bundleName: "com.example.myapplication", 629 abilityName: "EntryAbility", 630 action: "action1", 631 entities: ["entity1"], 632 type: "MIMETYPE", 633 uri: "key = {true,true,false}", 634 parameters: 635 { 636 mykey0: 2222, 637 mykey1: [1, 2, 3], 638 mykey2: "[1, 2, 3]", 639 mykey3: "ssssssssssssssssssssssssss", 640 mykey4: [false, true, false], 641 mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 642 mykey6: true 643 } 644 } 645 ], 646 operationType: wantAgent.OperationType.START_ABILITIES, 647 requestCode: 0, 648 wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 649} 650 651wantAgent.getWantAgent(wantAgentInfo).then((agent) => { 652 currentAVSession.setLaunchAbility(agent).then(() => { 653 console.info('SetLaunchAbility successfully'); 654 }).catch((err: BusinessError) => { 655 console.error(`SetLaunchAbility BusinessError: code: ${err.code}, message: ${err.message}`); 656 }); 657}); 658``` 659 660### setLaunchAbility<sup>10+</sup> 661 662setLaunchAbility(ability: WantAgent, callback: AsyncCallback\<void>): void 663 664设置一个WantAgent用于拉起会话的Ability。结果通过callback异步回调方式返回。 665 666**系统能力:** SystemCapability.Multimedia.AVSession.Core 667 668**参数:** 669 670| 参数名 | 类型 | 必填 | 说明 | 671| -------- | --------------------------------------------- | ---- | ------------------------------------------------------------ | 672| ability | [WantAgent](../apis-ability-kit/js-apis-app-ability-wantAgent.md) | 是 | 应用的相关属性信息,如bundleName,abilityName,deviceId等。 | 673| callback | AsyncCallback\<void> | 是 | 回调函数。当Ability设置成功,err为undefined,否则返回错误对象。 | 674 675**错误码:** 676 677以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 678 679| 错误码ID | 错误信息 | 680| -------- | ---------------------------------------- | 681| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 682| 6600101 | Session service exception. | 683| 6600102 | The session does not exist. | 684 685**示例:** 686 687```ts 688import { wantAgent } from '@kit.AbilityKit'; 689import { BusinessError } from '@kit.BasicServicesKit'; 690 691// WantAgentInfo对象 692let wantAgentInfo: wantAgent.WantAgentInfo = { 693 wants: [ 694 { 695 deviceId: "deviceId", 696 bundleName: "com.example.myapplication", 697 abilityName: "EntryAbility", 698 action: "action1", 699 entities: ["entity1"], 700 type: "MIMETYPE", 701 uri: "key = {true,true,false}", 702 parameters: 703 { 704 mykey0: 2222, 705 mykey1: [1, 2, 3], 706 mykey2: "[1, 2, 3]", 707 mykey3: "ssssssssssssssssssssssssss", 708 mykey4: [false, true, false], 709 mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], 710 mykey6: true 711 } 712 } 713 ], 714 operationType: wantAgent.OperationType.START_ABILITIES, 715 requestCode: 0, 716 wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 717} 718 719wantAgent.getWantAgent(wantAgentInfo).then((agent) => { 720 currentAVSession.setLaunchAbility(agent, (err: BusinessError) => { 721 if (err) { 722 console.error(`SetLaunchAbility BusinessError: code: ${err.code}, message: ${err.message}`); 723 } else { 724 console.info('SetLaunchAbility successfully'); 725 } 726 }); 727}); 728``` 729 730### dispatchSessionEvent<sup>10+</sup> 731 732dispatchSessionEvent(event: string, args: {[key: string]: Object}): Promise\<void> 733 734媒体提供方设置一个会话内自定义事件,包括事件名和键值对形式的事件内容, 结果通过Promise异步回调方式返回。 735 736**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 737 738**系统能力:** SystemCapability.Multimedia.AVSession.Core 739 740**参数:** 741 742| 参数名 | 类型 | 必填 | 说明 | 743| ------- | --------------------------------------------- | ---- | ----------------------------------------------------------- | 744| event | string | 是 | 需要设置的会话事件的名称 | 745| args | {[key: string]: Object} | 是 | 需要传递的会话事件内容。 | 746 747> **说明:** 748> 参数args支持的数据类型有:字符串、数字、布尔、对象、数组和文件描述符等,详细介绍请参见[@ohos.app.ability.Want(Want)](../apis-ability-kit/js-apis-app-ability-want.md)。 749 750**返回值:** 751 752| 类型 | 说明 | 753| -------------- | ----------------------------- | 754| Promise\<void> | Promise对象。当事件设置成功,无返回结果,否则返回错误对象。 | 755 756**错误码:** 757 758以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 759 760| 错误码ID | 错误信息 | 761| -------- | ---------------------------------------- | 762| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 763| 6600101 | Session service exception. | 764| 6600102 | The session does not exist. | 765 766**示例:** 767 768```ts 769import { BusinessError } from '@kit.BasicServicesKit'; 770 771let currentAVSession: avSession.AVSession | undefined = undefined; 772let tag = "createNewSession"; 773let context: Context = getContext(this); 774 775avSession.createAVSession(context, tag, "audio", (err: BusinessError, data: avSession.AVSession) => { 776 if (err) { 777 console.error(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`); 778 } else { 779 currentAVSession = data; 780 } 781}); 782let eventName = "dynamic_lyric"; 783if (currentAVSession !== undefined) { 784 (currentAVSession as avSession.AVSession).dispatchSessionEvent(eventName, {lyric : "This is lyric"}).then(() => { 785 console.info('dispatchSessionEvent successfully'); 786 }).catch((err: BusinessError) => { 787 console.error(`dispatchSessionEvent BusinessError: code: ${err.code}, message: ${err.message}`); 788 }) 789} 790``` 791 792### dispatchSessionEvent<sup>10+</sup> 793 794dispatchSessionEvent(event: string, args: {[key: string]: Object}, callback: AsyncCallback\<void>): void 795 796媒体提供方设置一个会话内自定义事件,包括事件名和键值对形式的事件内容, 结果通过callback异步回调方式返回。 797 798**系统能力:** SystemCapability.Multimedia.AVSession.Core 799 800**参数:** 801 802| 参数名 | 类型 | 必填 | 说明 | 803| ------- | --------------------------------------------- | ---- | ----------------------------------------------------------- | 804| event | string | 是 | 需要设置的会话事件的名称 | 805| args | {[key: string]: Object} | 是 | 需要传递的会话事件内容。 | 806| callback | AsyncCallback\<void> | 是 | 回调函数。当会话事件设置成功,err为undefined,否则返回错误对象。 | 807 808> **说明:** 809 810> 参数args支持的数据类型有:字符串、数字、布尔、对象、数组和文件描述符等,详细介绍请参见[@ohos.app.ability.Want(Want)](../apis-ability-kit/js-apis-app-ability-want.md)。 811 812**错误码:** 813 814以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 815 816| 错误码ID | 错误信息 | 817| -------- | ---------------------------------------- | 818| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 819| 6600101 | Session service exception. | 820| 6600102 | The session does not exist. | 821 822**示例:** 823 824```ts 825import { BusinessError } from '@kit.BasicServicesKit'; 826 827let currentAVSession: avSession.AVSession | undefined = undefined; 828let tag = "createNewSession"; 829let context: Context = getContext(this); 830 831avSession.createAVSession(context, tag, "audio", (err: BusinessError, data: avSession.AVSession) => { 832 if (err) { 833 console.error(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`); 834 } else { 835 currentAVSession = data; 836 } 837}); 838let eventName: string = "dynamic_lyric"; 839if (currentAVSession !== undefined) { 840 (currentAVSession as avSession.AVSession).dispatchSessionEvent(eventName, {lyric : "This is lyric"}, (err: BusinessError) => { 841 if (err) { 842 console.error(`dispatchSessionEvent BusinessError: code: ${err.code}, message: ${err.message}`); 843 } 844 }) 845} 846``` 847 848### setAVQueueItems<sup>10+</sup> 849 850setAVQueueItems(items: Array\<AVQueueItem>): Promise\<void> 851 852设置媒体播放列表。结果通过Promise异步回调方式返回。 853 854**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 855 856**系统能力:** SystemCapability.Multimedia.AVSession.Core 857 858**参数:** 859 860| 参数名 | 类型 | 必填 | 说明 | 861| ------ | ------------------------------------ | ---- | ---------------------------------- | 862| items | Array<[AVQueueItem](#avqueueitem10)\> | 是 | 播放列表单项的队列,用以表示播放列表。 | 863 864**返回值:** 865 866| 类型 | 说明 | 867| -------------- | ----------------------------- | 868| Promise\<void> | Promise对象。当播放列表设置成功,无返回结果,否则返回错误对象。 | 869 870**错误码:** 871 872以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 873 874| 错误码ID | 错误信息 | 875| -------- | ---------------------------------------- | 876| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 877| 6600101 | Session service exception. | 878| 6600102 | The session does not exist. | 879 880**示例:** 881 882```ts 883import { image } from '@kit.ImageKit'; 884import { resourceManager } from '@kit.LocalizationKit'; 885import { BusinessError } from '@kit.BasicServicesKit'; 886 887async function setAVQueueItems() { 888 let value = await resourceManager.getSystemResourceManager().getRawFileContent('IMAGE_URI'); 889 let imageSource = await image.createImageSource(value.buffer); 890 let imagePixel = await imageSource.createPixelMap({desiredSize:{width: 150, height: 150}}); 891 let queueItemDescription_1: avSession.AVMediaDescription = { 892 assetId: '001', 893 title: 'music_name', 894 subtitle: 'music_sub_name', 895 description: 'music_description', 896 mediaImage : imagePixel, 897 extras: {extras:'any'} 898 }; 899 let queueItem_1: avSession.AVQueueItem = { 900 itemId: 1, 901 description: queueItemDescription_1 902 }; 903 let queueItemDescription_2: avSession.AVMediaDescription = { 904 assetId: '002', 905 title: 'music_name', 906 subtitle: 'music_sub_name', 907 description: 'music_description', 908 mediaImage: imagePixel, 909 extras: {extras:'any'} 910 }; 911 let queueItem_2: avSession.AVQueueItem = { 912 itemId: 2, 913 description: queueItemDescription_2 914 }; 915 let queueItemsArray: avSession.AVQueueItem[] = [queueItem_1, queueItem_2]; 916 currentAVSession.setAVQueueItems(queueItemsArray).then(() => { 917 console.info('SetAVQueueItems successfully'); 918 }).catch((err: BusinessError) => { 919 console.error(`SetAVQueueItems BusinessError: code: ${err.code}, message: ${err.message}`); 920 }); 921} 922``` 923 924### setAVQueueItems<sup>10+</sup> 925 926setAVQueueItems(items: Array\<AVQueueItem>, callback: AsyncCallback\<void>): void 927 928设置媒体播放列表。结果通过callback异步回调方式返回。 929 930**系统能力:** SystemCapability.Multimedia.AVSession.Core 931 932**参数:** 933 934| 参数名 | 类型 | 必填 | 说明 | 935| -------- | ------------------------------------ | ---- | ----------------------------------------------------------- | 936| items | Array<[AVQueueItem](#avqueueitem10)\> | 是 | 播放列表单项的队列,用以表示播放列表。 | 937| callback | AsyncCallback\<void> | 是 | 回调函数。当播放状态设置成功,err为undefined,否则返回错误对象。 | 938 939**错误码:** 940 941以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 942 943| 错误码ID | 错误信息 | 944| -------- | ---------------------------------------- | 945| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 946| 6600101 | Session service exception. | 947| 6600102 | The session does not exist. | 948 949**示例:** 950 951```ts 952import { image } from '@kit.ImageKit'; 953import { resourceManager } from '@kit.LocalizationKit'; 954import { BusinessError } from '@kit.BasicServicesKit'; 955 956async function setAVQueueItems() { 957 let value = await resourceManager.getSystemResourceManager().getRawFileContent('IMAGE_URI'); 958 let imageSource = await image.createImageSource(value.buffer); 959 let imagePixel = await imageSource.createPixelMap({desiredSize:{width: 150, height: 150}}); 960 let queueItemDescription_1: avSession.AVMediaDescription = { 961 assetId: '001', 962 title: 'music_name', 963 subtitle: 'music_sub_name', 964 description: 'music_description', 965 mediaImage : imagePixel, 966 extras: {extras:'any'} 967 }; 968 let queueItem_1: avSession.AVQueueItem = { 969 itemId: 1, 970 description: queueItemDescription_1 971 }; 972 let queueItemDescription_2: avSession.AVMediaDescription = { 973 assetId: '002', 974 title: 'music_name', 975 subtitle: 'music_sub_name', 976 description: 'music_description', 977 mediaImage: imagePixel, 978 extras: {extras:'any'} 979 }; 980 let queueItem_2: avSession.AVQueueItem = { 981 itemId: 2, 982 description: queueItemDescription_2 983 }; 984 let queueItemsArray: avSession.AVQueueItem[] = [queueItem_1, queueItem_2]; 985 currentAVSession.setAVQueueItems(queueItemsArray, (err: BusinessError) => { 986 if (err) { 987 console.error(`SetAVQueueItems BusinessError: code: ${err.code}, message: ${err.message}`); 988 } else { 989 console.info('SetAVQueueItems successfully'); 990 } 991 }); 992} 993``` 994 995### setAVQueueTitle<sup>10+</sup> 996 997setAVQueueTitle(title: string): Promise\<void> 998 999设置媒体播放列表名称。结果通过Promise异步回调方式返回。 1000 1001**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1002 1003**系统能力:** SystemCapability.Multimedia.AVSession.Core 1004 1005**参数:** 1006 1007| 参数名 | 类型 | 必填 | 说明 | 1008| ------ | ------ | ---- | -------------- | 1009| title | string | 是 | 播放列表的名称。 | 1010 1011**返回值:** 1012 1013| 类型 | 说明 | 1014| -------------- | ----------------------------- | 1015| Promise\<void> | Promise对象。当播放列表设置成功,无返回结果,否则返回错误对象。 | 1016 1017**错误码:** 1018 1019以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1020 1021| 错误码ID | 错误信息 | 1022| -------- | ---------------------------------------- | 1023| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 1024| 6600101 | Session service exception. | 1025| 6600102 | The session does not exist. | 1026 1027**示例:** 1028 1029```ts 1030import { BusinessError } from '@kit.BasicServicesKit'; 1031 1032let queueTitle = 'QUEUE_TITLE'; 1033currentAVSession.setAVQueueTitle(queueTitle).then(() => { 1034 console.info('SetAVQueueTitle successfully'); 1035}).catch((err: BusinessError) => { 1036 console.error(`SetAVQueueTitle BusinessError: code: ${err.code}, message: ${err.message}`); 1037}); 1038``` 1039 1040### setAVQueueTitle<sup>10+</sup> 1041 1042setAVQueueTitle(title: string, callback: AsyncCallback\<void>): void 1043 1044设置媒体播放列表名称。结果通过callback异步回调方式返回。 1045 1046**系统能力:** SystemCapability.Multimedia.AVSession.Core 1047 1048**参数:** 1049 1050| 参数名 | 类型 | 必填 | 说明 | 1051| -------- | --------------------- | ---- | ----------------------------------------------------------- | 1052| title | string | 是 | 播放列表名称字段。 | 1053| callback | AsyncCallback\<void> | 是 | 回调函数。当播放状态设置成功,err为undefined,否则返回错误对象。 | 1054 1055**错误码:** 1056 1057以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1058 1059| 错误码ID | 错误信息 | 1060| -------- | ---------------------------------------- | 1061| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 1062| 6600101 | Session service exception. | 1063| 6600102 | The session does not exist. | 1064 1065**示例:** 1066 1067```ts 1068import { BusinessError } from '@kit.BasicServicesKit'; 1069 1070let queueTitle = 'QUEUE_TITLE'; 1071currentAVSession.setAVQueueTitle(queueTitle, (err: BusinessError) => { 1072 if (err) { 1073 console.error(`SetAVQueueTitle BusinessError: code: ${err.code}, message: ${err.message}`); 1074 } else { 1075 console.info('SetAVQueueTitle successfully'); 1076 } 1077}); 1078``` 1079 1080### setExtras<sup>10+</sup> 1081 1082setExtras(extras: {[key: string]: Object}): Promise\<void> 1083 1084媒体提供方设置键值对形式的自定义媒体数据包, 结果通过Promise异步回调方式返回。 1085 1086**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1087 1088**系统能力:** SystemCapability.Multimedia.AVSession.Core 1089 1090**参数:** 1091 1092| 参数名 | 类型 | 必填 | 说明 | 1093| ------- | --------------------------------------------- | ---- | ----------------------------------------------------------- | 1094| extras | {[key: string]: Object} | 是 | 需要传递的自定义媒体数据包键值对 | 1095 1096> **说明:** 1097 1098> 参数extras支持的数据类型有:字符串、数字、布尔、对象、数组和文件描述符等,详细介绍请参见[@ohos.app.ability.Want(Want)](../apis-ability-kit/js-apis-app-ability-want.md)。 1099 1100**返回值:** 1101 1102| 类型 | 说明 | 1103| -------------- | ----------------------------- | 1104| Promise\<void> | Promise对象。当自定义媒体数据包设置成功,无返回结果,否则返回错误对象。 | 1105 1106**错误码:** 1107 1108以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1109 1110| 错误码ID | 错误信息 | 1111| -------- | ---------------------------------------- | 1112| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 1113| 6600101 | Session service exception. | 1114| 6600102 | The session does not exist. | 1115 1116**示例:** 1117 1118```ts 1119import { BusinessError } from '@kit.BasicServicesKit'; 1120 1121let currentAVSession: avSession.AVSession | undefined = undefined; 1122let tag = "createNewSession"; 1123let context: Context = getContext(this); 1124 1125avSession.createAVSession(context, tag, "audio", (err: BusinessError, data: avSession.AVSession) => { 1126 if (err) { 1127 console.error(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`); 1128 } else { 1129 currentAVSession = data; 1130 } 1131}); 1132if (currentAVSession !== undefined) { 1133 (currentAVSession as avSession.AVSession).setExtras({extras : "This is custom media packet"}).then(() => { 1134 console.info('setExtras successfully'); 1135 }).catch((err: BusinessError) => { 1136 console.error(`setExtras BusinessError: code: ${err.code}, message: ${err.message}`); 1137 }) 1138} 1139``` 1140 1141### setExtras<sup>10+</sup> 1142 1143setExtras(extras: {[key: string]: Object}, callback: AsyncCallback\<void>): void 1144 1145媒体提供方设置键值对形式的自定义媒体数据包, 结果通过callback异步回调方式返回。 1146 1147**系统能力:** SystemCapability.Multimedia.AVSession.Core 1148 1149**参数:** 1150 1151| 参数名 | 类型 | 必填 | 说明 | 1152| ------- | --------------------------------------------- | ---- | ----------------------------------------------------------- | 1153| extras | {[key: string]: Object} | 是 | 需要传递的自定义媒体数据包键值对 | 1154| callback | AsyncCallback\<void> | 是 | 回调函数。当自定义媒体数据包设置成功,err为undefined,否则返回错误对象。 | 1155 1156> **说明:** 1157 1158> 参数extras支持的数据类型有:字符串、数字、布尔、对象、数组和文件描述符等,详细介绍请参见[@ohos.app.ability.Want(Want)](../apis-ability-kit/js-apis-app-ability-want.md)。 1159 1160**错误码:** 1161 1162以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1163 1164| 错误码ID | 错误信息 | 1165| -------- | ---------------------------------------- | 1166| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 1167| 6600101 | Session service exception. | 1168| 6600102 | The session does not exist. | 1169 1170**示例:** 1171 1172```ts 1173import { BusinessError } from '@kit.BasicServicesKit'; 1174 1175let currentAVSession: avSession.AVSession | undefined = undefined; 1176let tag = "createNewSession"; 1177let context: Context = getContext(this); 1178 1179avSession.createAVSession(context, tag, "audio", (err: BusinessError, data: avSession.AVSession) => { 1180 if (err) { 1181 console.error(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`); 1182 } else { 1183 currentAVSession = data; 1184 } 1185}); 1186if (currentAVSession !== undefined) { 1187 (currentAVSession as avSession.AVSession).setExtras({extras : "This is custom media packet"}, (err: BusinessError) => { 1188 if (err) { 1189 console.error(`setExtras BusinessError: code: ${err.code}, message: ${err.message}`); 1190 } 1191 }) 1192} 1193``` 1194 1195### getController<sup>10+</sup> 1196 1197getController(): Promise\<AVSessionController> 1198 1199获取本会话对应的控制器。结果通过Promise异步回调方式返回。 1200 1201**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1202 1203**系统能力:** SystemCapability.Multimedia.AVSession.Core 1204 1205**返回值:** 1206 1207| 类型 | 说明 | 1208| ---------------------------------------------------- | ----------------------------- | 1209| Promise<[AVSessionController](#avsessioncontroller10)> | Promise对象。返回会话控制器。 | 1210 1211**错误码:** 1212 1213以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1214 1215| 错误码ID | 错误信息 | 1216| -------- | ---------------------------------------- | 1217| 6600101 | Session service exception. | 1218| 6600102 | The session does not exist. | 1219 1220**示例:** 1221 1222```ts 1223import { BusinessError } from '@kit.BasicServicesKit'; 1224 1225let avsessionController: avSession.AVSessionController; 1226currentAVSession.getController().then((avcontroller: avSession.AVSessionController) => { 1227 avsessionController = avcontroller; 1228 console.info(`GetController : SUCCESS : sessionid : ${avsessionController.sessionId}`); 1229}).catch((err: BusinessError) => { 1230 console.error(`GetController BusinessError: code: ${err.code}, message: ${err.message}`); 1231}); 1232``` 1233 1234### getController<sup>10+</sup> 1235 1236getController(callback: AsyncCallback\<AVSessionController>): void 1237 1238获取本会话相应的控制器。结果通过callback异步回调方式返回。 1239 1240**系统能力:** SystemCapability.Multimedia.AVSession.Core 1241 1242**参数:** 1243 1244| 参数名 | 类型 | 必填 | 说明 | 1245| -------- | ----------------------------------------------------------- | ---- | -------------------------- | 1246| callback | AsyncCallback<[AVSessionController](#avsessioncontroller10)\> | 是 | 回调函数。返回会话控制器。 | 1247 1248**错误码:** 1249 1250以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1251 1252| 错误码ID | 错误信息 | 1253| -------- | ---------------------------------------- | 1254| 6600101 | Session service exception. | 1255| 6600102 | The session does not exist. | 1256 1257**示例:** 1258 1259```ts 1260import { BusinessError } from '@kit.BasicServicesKit'; 1261 1262let avsessionController: avSession.AVSessionController; 1263currentAVSession.getController((err: BusinessError, avcontroller: avSession.AVSessionController) => { 1264 if (err) { 1265 console.error(`GetController BusinessError: code: ${err.code}, message: ${err.message}`); 1266 } else { 1267 avsessionController = avcontroller; 1268 console.info(`GetController : SUCCESS : sessionid : ${avsessionController.sessionId}`); 1269 } 1270}); 1271``` 1272 1273### getAVCastController<sup>10+</sup> 1274 1275getAVCastController(): Promise\<AVCastController> 1276 1277设备建立连接后,获取投播控制器。结果通过Promise异步回调方式返回。如果 avsession 未处于投播状态,则控制器将返回 null。 1278 1279**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1280 1281**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 1282 1283**返回值:** 1284 1285| 类型 | 说明 | 1286| --------- | ------------------------------------------------------------ | 1287| Promise<[AVCastController](#avcastcontroller10)\> | Promise对象。返回投播控制器实例。 | 1288 1289**错误码:** 1290 1291以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1292 1293| 错误码ID | 错误信息 | 1294| -------- | --------------------------------------- | 1295| 6600102| The session does not exist. | 1296| 6600109| The remote connection is not established. | 1297 1298**示例:** 1299 1300```ts 1301import { BusinessError } from '@kit.BasicServicesKit'; 1302 1303let aVCastController: avSession.AVCastController; 1304currentAVSession.getAVCastController().then((avcontroller: avSession.AVCastController) => { 1305 aVCastController = avcontroller; 1306 console.info('getAVCastController : SUCCESS'); 1307}).catch((err: BusinessError) => { 1308 console.error(`getAVCastController BusinessError: code: ${err.code}, message: ${err.message}`); 1309}); 1310``` 1311 1312### getAVCastController<sup>10+</sup> 1313 1314getAVCastController(callback: AsyncCallback\<AVCastController>): void 1315 1316设备建立连接后,获取投播控制器。结果通过callback异步回调方式返回。如果 avsession 未处于投播状态,则控制器将返回 null。 1317 1318**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 1319 1320**参数:** 1321 1322| 参数名 | 类型 | 必填 | 说明 | 1323| --------- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ | 1324| callback | AsyncCallback<[AVCastController](#avcastcontroller10)\> | 是 | 回调函数,返回投播控制器实例。 | 1325 1326**错误码:** 1327 1328以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1329 1330| 错误码ID | 错误信息 | 1331| -------- |---------------------------------------| 1332| 6600102| The session does not exist. | 1333| 6600109| The remote connection is not established. | 1334 1335**示例:** 1336 1337```ts 1338import { BusinessError } from '@kit.BasicServicesKit'; 1339 1340let aVCastController: avSession.AVCastController; 1341currentAVSession.getAVCastController((err: BusinessError, avcontroller: avSession.AVCastController) => { 1342 if (err) { 1343 console.error(`getAVCastController BusinessError: code: ${err.code}, message: ${err.message}`); 1344 } else { 1345 aVCastController = avcontroller; 1346 console.info('getAVCastController : SUCCESS'); 1347 } 1348}); 1349``` 1350 1351### getOutputDevice<sup>10+</sup> 1352 1353getOutputDevice(): Promise\<OutputDeviceInfo> 1354 1355通过会话获取播放设备信息。结果通过Promise异步回调方式返回。 1356 1357**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1358 1359**系统能力:** SystemCapability.Multimedia.AVSession.Core 1360 1361**返回值:** 1362 1363| 类型 | 说明 | 1364| ---------------------------------------------- | --------------------------------- | 1365| Promise<[OutputDeviceInfo](#outputdeviceinfo10)> | Promise对象。返回播放设备信息。 | 1366 1367**错误码:** 1368 1369以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1370 1371| 错误码ID | 错误信息 | 1372| -------- | ---------------------------------------- | 1373| 6600101 | Session service exception. | 1374| 6600102 | The session does not exist. | 1375 1376**示例:** 1377 1378```ts 1379import { BusinessError } from '@kit.BasicServicesKit'; 1380 1381currentAVSession.getOutputDevice().then((outputDeviceInfo: avSession.OutputDeviceInfo) => { 1382 console.info(`GetOutputDevice : SUCCESS : devices length : ${outputDeviceInfo.devices.length}`); 1383}).catch((err: BusinessError) => { 1384 console.error(`GetOutputDevice BusinessError: code: ${err.code}, message: ${err.message}`); 1385}) 1386``` 1387 1388### getOutputDevice<sup>10+</sup> 1389 1390getOutputDevice(callback: AsyncCallback\<OutputDeviceInfo>): void 1391 1392通过会话获取播放设备相关信息。结果通过callback异步回调方式返回。 1393 1394**系统能力:** SystemCapability.Multimedia.AVSession.Core 1395 1396**参数:** 1397 1398| 参数名 | 类型 | 必填 | 说明 | 1399| -------- | ----------------------------------------------------- | ---- | ------------------------------ | 1400| callback | AsyncCallback<[OutputDeviceInfo](#outputdeviceinfo10)\> | 是 | 回调函数,返回播放设备信息。 | 1401 1402**错误码:** 1403 1404以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1405 1406| 错误码ID | 错误信息 | 1407| -------- | ---------------------------------------- | 1408| 6600101 | Session service exception. | 1409| 6600102 | The session does not exist. | 1410 1411**示例:** 1412 1413```ts 1414import { BusinessError } from '@kit.BasicServicesKit'; 1415 1416currentAVSession.getOutputDevice((err: BusinessError, outputDeviceInfo: avSession.OutputDeviceInfo) => { 1417 if (err) { 1418 console.error(`GetOutputDevice BusinessError: code: ${err.code}, message: ${err.message}`); 1419 } else { 1420 console.info(`GetOutputDevice : SUCCESS : devices length : ${outputDeviceInfo.devices.length}`); 1421 } 1422}); 1423``` 1424 1425### activate<sup>10+</sup> 1426 1427activate(): Promise\<void> 1428 1429激活会话,激活后可正常使用会话。结果通过Promise异步回调方式返回。 1430 1431**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1432 1433**系统能力:** SystemCapability.Multimedia.AVSession.Core 1434 1435**返回值:** 1436 1437| 类型 | 说明 | 1438| -------------- | ----------------------------- | 1439| Promise\<void> | Promise对象。当会话激活成功,无返回结果,否则返回错误对象。 | 1440 1441**错误码:** 1442 1443以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1444 1445| 错误码ID | 错误信息 | 1446| -------- | ---------------------------------------- | 1447| 6600101 | Session service exception. | 1448| 6600102 | The session does not exist. | 1449 1450**示例:** 1451 1452```ts 1453import { BusinessError } from '@kit.BasicServicesKit'; 1454 1455currentAVSession.activate().then(() => { 1456 console.info('Activate : SUCCESS '); 1457}).catch((err: BusinessError) => { 1458 console.error(`Activate BusinessError: code: ${err.code}, message: ${err.message}`); 1459}); 1460``` 1461 1462### activate<sup>10+</sup> 1463 1464activate(callback: AsyncCallback\<void>): void 1465 1466激活会话,激活后可正常使用会话。结果通过callback异步回调方式返回。 1467 1468**系统能力:** SystemCapability.Multimedia.AVSession.Core 1469 1470**参数:** 1471 1472| 参数名 | 类型 | 必填 | 说明 | 1473| -------- | -------------------- | ---- | ---------- | 1474| callback | AsyncCallback\<void> | 是 | 回调函数。当会话激活成功,err为undefined,否则返回错误对象。 | 1475 1476**错误码:** 1477 1478以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1479 1480| 错误码ID | 错误信息 | 1481| -------- | ---------------------------------------- | 1482| 6600101 | Session service exception. | 1483| 6600102 | The session does not exist. | 1484 1485**示例:** 1486 1487```ts 1488import { BusinessError } from '@kit.BasicServicesKit'; 1489 1490currentAVSession.activate((err: BusinessError) => { 1491 if (err) { 1492 console.error(`Activate BusinessError: code: ${err.code}, message: ${err.message}`); 1493 } else { 1494 console.info('Activate : SUCCESS '); 1495 } 1496}); 1497``` 1498 1499### deactivate<sup>10+</sup> 1500 1501deactivate(): Promise\<void> 1502 1503禁用当前会话的功能,可通过[activate](#activate10)恢复。结果通过Promise异步回调方式返回。 1504 1505**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1506 1507**系统能力:** SystemCapability.Multimedia.AVSession.Core 1508 1509**返回值:** 1510 1511| 类型 | 说明 | 1512| -------------- | ----------------------------- | 1513| Promise\<void> | Promise对象。当禁用会话成功,无返回结果,否则返回错误对象。| 1514 1515**错误码:** 1516 1517以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1518 1519| 错误码ID | 错误信息 | 1520| -------- | ---------------------------------------- | 1521| 6600101 | Session service exception. | 1522| 6600102 | The session does not exist. | 1523 1524**示例:** 1525 1526```ts 1527import { BusinessError } from '@kit.BasicServicesKit'; 1528 1529currentAVSession.deactivate().then(() => { 1530 console.info('Deactivate : SUCCESS '); 1531}).catch((err: BusinessError) => { 1532 console.error(`Deactivate BusinessError: code: ${err.code}, message: ${err.message}`); 1533}); 1534``` 1535 1536### deactivate<sup>10+</sup> 1537 1538deactivate(callback: AsyncCallback\<void>): void 1539 1540禁用当前会话。结果通过callback异步回调方式返回。 1541 1542禁用当前会话的功能,可通过[activate](#activate10)恢复。 1543 1544**系统能力:** SystemCapability.Multimedia.AVSession.Core 1545 1546**参数:** 1547 1548| 参数名 | 类型 | 必填 | 说明 | 1549| -------- | -------------------- | ---- | ---------- | 1550| callback | AsyncCallback\<void> | 是 | 回调函数。当禁用会话成功,err为undefined,否则返回错误对象。| 1551 1552**错误码:** 1553 1554以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1555 1556| 错误码ID | 错误信息 | 1557| -------- | ---------------------------------------- | 1558| 6600101 | Session service exception. | 1559| 6600102 | The session does not exist. | 1560 1561**示例:** 1562 1563```ts 1564import { BusinessError } from '@kit.BasicServicesKit'; 1565 1566currentAVSession.deactivate((err: BusinessError) => { 1567 if (err) { 1568 console.error(`Deactivate BusinessError: code: ${err.code}, message: ${err.message}`); 1569 } else { 1570 console.info('Deactivate : SUCCESS '); 1571 } 1572}); 1573``` 1574 1575### destroy<sup>10+</sup> 1576 1577destroy(): Promise\<void> 1578 1579销毁当前会话,使当前会话完全失效。结果通过Promise异步回调方式返回。 1580 1581**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1582 1583**系统能力:** SystemCapability.Multimedia.AVSession.Core 1584 1585**返回值:** 1586 1587| 类型 | 说明 | 1588| -------------- | ----------------------------- | 1589| Promise\<void> | Promise对象。当会话销毁成功,无返回结果,否则返回错误对象。 | 1590 1591**错误码:** 1592 1593以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1594 1595| 错误码ID | 错误信息 | 1596| -------- | ---------------------------------------- | 1597| 6600101 | Session service exception. | 1598| 6600102 | The session does not exist. | 1599 1600**示例:** 1601 1602```ts 1603import { BusinessError } from '@kit.BasicServicesKit'; 1604 1605currentAVSession.destroy().then(() => { 1606 console.info('Destroy : SUCCESS '); 1607}).catch((err: BusinessError) => { 1608 console.error(`Destroy BusinessError: code: ${err.code}, message: ${err.message}`); 1609}); 1610``` 1611 1612### destroy<sup>10+</sup> 1613 1614destroy(callback: AsyncCallback\<void>): void 1615 1616销毁当前会话,使当前会话完全失效。结果通过callback异步回调方式返回。 1617 1618**系统能力:** SystemCapability.Multimedia.AVSession.Core 1619 1620**参数:** 1621 1622| 参数名 | 类型 | 必填 | 说明 | 1623| -------- | -------------------- | ---- | ---------- | 1624| callback | AsyncCallback\<void> | 是 | 回调函数。当会话销毁成功,err为undefined,否则返回错误对象。 | 1625 1626**错误码:** 1627 1628以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1629 1630| 错误码ID | 错误信息 | 1631| -------- | ---------------------------------------- | 1632| 6600101 | Session service exception. | 1633| 6600102 | The session does not exist. | 1634 1635**示例:** 1636 1637```ts 1638import { BusinessError } from '@kit.BasicServicesKit'; 1639 1640currentAVSession.destroy((err: BusinessError) => { 1641 if (err) { 1642 console.error(`Destroy BusinessError: code: ${err.code}, message: ${err.message}`); 1643 } else { 1644 console.info('Destroy : SUCCESS '); 1645 } 1646}); 1647``` 1648 1649### on('play')<sup>10+</sup> 1650 1651on(type: 'play', callback: () => void): void 1652 1653设置播放命令监听事件。注册该监听,说明应用支持播放指令。 1654 1655每个播放命令仅支持注册一个回调,如果注册新的回调,将替换前一个回调。 1656 1657**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1658 1659**系统能力:** SystemCapability.Multimedia.AVSession.Core 1660 1661**参数:** 1662 1663| 参数名 | 类型 | 必填 | 说明 | 1664| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1665| type | string | 是 | 事件回调类型,支持的事件为`'play'`当播放命令被发送到会话时,触发该事件回调。 | 1666| callback | () => void | 是 | 回调函数。当监听事件注册成功,err为undefined,否则为错误对象。 | 1667 1668**错误码:** 1669 1670以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1671 1672| 错误码ID | 错误信息 | 1673| -------- | ---------------------------------------- | 1674| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 1675| 6600101 | Session service exception. | 1676| 6600102 | The session does not exist. | 1677 1678**示例:** 1679 1680```ts 1681currentAVSession.on('play', () => { 1682 console.info('on play entry'); 1683}); 1684``` 1685 1686### on('pause')<sup>10+</sup> 1687 1688on(type: 'pause', callback: () => void): void 1689 1690设置暂停命令监听事件。注册该监听,说明应用支持暂停指令。 1691 1692每个播放命令仅支持注册一个回调,如果注册新的回调,将替换前一个回调。 1693 1694**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1695 1696**系统能力:** SystemCapability.Multimedia.AVSession.Core 1697 1698**参数:** 1699 1700| 参数名 | 类型 | 必填 | 说明 | 1701| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1702| type | string | 是 | 事件回调类型,支持的事件为`'pause'`,当暂停命令被发送到会话时,触发该事件回调。 | 1703| callback | () => void | 是 | 回调函数。当监听事件注册成功,err为undefined,否则为错误对象。 | 1704 1705**错误码:** 1706 1707以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1708 1709| 错误码ID | 错误信息 | 1710| -------- | ---------------------------------------- | 1711| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 1712| 6600101 | Session service exception. | 1713| 6600102 | The session does not exist. | 1714 1715**示例:** 1716 1717```ts 1718currentAVSession.on('pause', () => { 1719 console.info('on pause entry'); 1720}); 1721``` 1722 1723### on('stop')<sup>10+</sup> 1724 1725on(type:'stop', callback: () => void): void 1726 1727设置停止命令监听事件。注册该监听,说明应用支持停止指令。 1728 1729每个播放命令仅支持注册一个回调,如果注册新的回调,将替换前一个回调。 1730 1731**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1732 1733**系统能力:** SystemCapability.Multimedia.AVSession.Core 1734 1735**参数:** 1736 1737| 参数名 | 类型 | 必填 | 说明 | 1738| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1739| type | string | 是 | 事件回调类型,支持的事件是`'stop'`,当停止命令被发送到会话时,触发该事件回调。 | 1740| callback | () => void | 是 | 回调函数。当监听事件注册成功,err为undefined,否则为错误对象。 | 1741 1742**错误码:** 1743 1744以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1745 1746| 错误码ID | 错误信息 | 1747| -------- | ---------------------------------------- | 1748| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 1749| 6600101 | Session service exception. | 1750| 6600102 | The session does not exist. | 1751 1752**示例:** 1753 1754```ts 1755currentAVSession.on('stop', () => { 1756 console.info('on stop entry'); 1757}); 1758``` 1759 1760### on('playNext')<sup>10+</sup> 1761 1762on(type:'playNext', callback: () => void): void 1763 1764设置播放下一首命令监听事件。注册该监听,说明应用支持下一首指令。 1765 1766每个播放命令仅支持注册一个回调,如果注册新的回调,将替换前一个回调。 1767 1768**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1769 1770**系统能力:** SystemCapability.Multimedia.AVSession.Core 1771 1772**参数:** 1773 1774| 参数名 | 类型 | 必填 | 说明 | 1775| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1776| type | string | 是 | 事件回调类型,支持的事件是`'playNext'`,当播放下一首命令被发送到会话时,触发该事件回调。 | 1777| callback | () => void | 是 | 回调函数。当监听事件注册成功,err为undefined,否则为错误对象。 | 1778 1779**错误码:** 1780 1781以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1782 1783| 错误码ID | 错误信息 | 1784| -------- | ---------------------------------------- | 1785| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 1786| 6600101 | Session service exception. | 1787| 6600102 | The session does not exist. | 1788 1789**示例:** 1790 1791```ts 1792currentAVSession.on('playNext', () => { 1793 console.info('on playNext entry'); 1794}); 1795``` 1796 1797### on('playPrevious')<sup>10+</sup> 1798 1799on(type:'playPrevious', callback: () => void): void 1800 1801设置播放上一首命令监听事件。注册该监听,说明应用支持上一首指令。 1802 1803每个播放命令仅支持注册一个回调,如果注册新的回调,将替换前一个回调。 1804 1805**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1806 1807**系统能力:** SystemCapability.Multimedia.AVSession.Core 1808 1809**参数:** 1810 1811| 参数名 | 类型 | 必填 | 说明 | 1812| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1813| type | string | 是 | 事件回调类型,支持的事件是`'playPrevious'`当播放上一首命令被发送到会话时,触发该事件回调。 | 1814| callback | () => void | 是 | 回调函数。当监听事件注册成功,err为undefined,否则为错误对象。 | 1815 1816**错误码:** 1817 1818以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1819 1820| 错误码ID | 错误信息 | 1821| -------- | ---------------------------------------- | 1822| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 1823| 6600101 | Session service exception. | 1824| 6600102 | The session does not exist. | 1825 1826**示例:** 1827 1828```ts 1829currentAVSession.on('playPrevious', () => { 1830 console.info('on playPrevious entry'); 1831}); 1832``` 1833 1834### on('fastForward')<sup>10+</sup> 1835 1836on(type: 'fastForward', callback: (time?: number) => void): void 1837 1838设置快进命令监听事件。注册该监听,说明应用支持快进指令。 1839 1840每个播放命令仅支持注册一个回调,如果注册新的回调,将替换前一个回调。 1841 1842**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1843 1844**系统能力:** SystemCapability.Multimedia.AVSession.Core 1845 1846**参数:** 1847 1848| 参数名 | 类型 | 必填 | 说明 | 1849| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1850| type | string | 是 | 事件回调类型,支持的事件是 `'fastForward'`,当快进命令被发送到会话时,触发该事件回调。 | 1851| callback | (time?: number) => void | 是 | 回调函数。参数time是时间节点,单位为秒。 | 1852 1853**错误码:** 1854 1855以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1856 1857| 错误码ID | 错误信息 | 1858| -------- | ---------------------------------------- | 1859| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 1860| 6600101 | Session service exception. | 1861| 6600102 | The session does not exist. | 1862 1863**示例:** 1864 1865```ts 1866currentAVSession.on('fastForward', (time?: number) => { 1867 console.info('on fastForward entry'); 1868}); 1869``` 1870 1871### on('rewind')<sup>10+</sup> 1872 1873on(type:'rewind', callback: (time?: number) => void): void 1874 1875设置快退命令监听事件。 1876 1877**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1878 1879**系统能力:** SystemCapability.Multimedia.AVSession.Core 1880 1881**参数:** 1882 1883| 参数名 | 类型 | 必填 | 说明 | 1884| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1885| type | string | 是 | 事件回调类型,支持的事件是`'rewind'`,当快退命令被发送到会话时,触发该事件回调。 | 1886| callback | (time?: number) => void | 是 | 回调函数。参数time是时间节点,单位为秒。 | 1887 1888**错误码:** 1889 1890以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1891 1892| 错误码ID | 错误信息 | 1893| -------- | ---------------------------------------- | 1894| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 1895| 6600101 | Session service exception. | 1896| 6600102 | The session does not exist. | 1897 1898**示例:** 1899 1900```ts 1901currentAVSession.on('rewind', (time?: number) => { 1902 console.info('on rewind entry'); 1903}); 1904``` 1905 1906### on('playFromAssetId')<sup>11+</sup> 1907 1908on(type:'playFromAssetId', callback: (assetId: number) => void): void 1909 1910设置媒体id播放监听事件。 1911 1912**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1913 1914**系统能力:** SystemCapability.Multimedia.AVSession.Core 1915 1916**参数:** 1917 1918| 参数名 | 类型 | 必填 | 说明 | 1919| -------- | -------------------- | ---- | ------------------------------------------------------------ | 1920| type | string | 是 | 事件回调类型,支持的事件是`'playFromAssetId'`,当媒体id播放时,触发该事件回调。 | 1921| callback | callback: (assetId: number) => void | 是 | 回调函数。参数assetId是媒体id。 | 1922 1923**错误码:** 1924 1925以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1926 1927| 错误码ID | 错误信息 | 1928| -------- | ---------------------------------------- | 1929| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 1930| 6600101 | Session service exception. | 1931| 6600102 | The session does not exist. | 1932 1933**示例:** 1934 1935```ts 1936currentAVSession.on('playFromAssetId', (assetId: number) => { 1937 console.info('on playFromAssetId entry'); 1938}); 1939``` 1940 1941### off('playFromAssetId')<sup>11+</sup> 1942 1943off(type: 'playFromAssetId', callback?: (assetId: number) => void): void 1944 1945取消媒体id播放事件监听,关闭后,不再进行该事件回调。 1946 1947**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1948 1949**系统能力:** SystemCapability.Multimedia.AVSession.Core 1950 1951**参数:** 1952 1953| 参数名 | 类型 | 必填 | 说明 | 1954| -------- | -------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------- | 1955| type | string | 是 | 关闭对应的监听事件,支持的事件是`'playFromAssetId'`。 | 1956| callback | callback: (assetId: number) => void | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。参数assetId是媒体id。 | 1957 1958**错误码:** 1959 1960以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1961 1962| 错误码ID | 错误信息 | 1963| -------- | ---------------------------------------- | 1964| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 1965| 6600101 | Session service exception. | 1966| 6600102 | The session does not exist. | 1967 1968**示例:** 1969 1970```ts 1971currentAVSession.off('playFromAssetId'); 1972``` 1973 1974### on('seek')<sup>10+</sup> 1975 1976on(type: 'seek', callback: (time: number) => void): void 1977 1978设置跳转节点监听事件。 1979 1980**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1981 1982**系统能力:** SystemCapability.Multimedia.AVSession.Core 1983 1984**参数:** 1985 1986| 参数名 | 类型 | 必填 | 说明 | 1987| -------- | ---------------------- | ---- | ------------------------------------------------------------ | 1988| type | string | 是 | 事件回调类型,支持事件`'seek'`:当跳转节点命令被发送到会话时,触发该事件。 | 1989| callback | (time: number) => void | 是 | 回调函数。参数time是时间节点,单位为毫秒。 | 1990 1991**错误码:** 1992 1993以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 1994 1995| 错误码ID | 错误信息 | 1996| -------- | ---------------------------------------- | 1997| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 1998| 6600101 | Session service exception. | 1999| 6600102 | The session does not exist. | 2000 2001**示例:** 2002 2003```ts 2004currentAVSession.on('seek', (time: number) => { 2005 console.info(`on seek entry time : ${time}`); 2006}); 2007``` 2008 2009### on('setSpeed')<sup>10+</sup> 2010 2011on(type: 'setSpeed', callback: (speed: number) => void): void 2012 2013设置播放速率的监听事件。 2014 2015**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2016 2017**系统能力:** SystemCapability.Multimedia.AVSession.Core 2018 2019**参数:** 2020 2021| 参数名 | 类型 | 必填 | 说明 | 2022| -------- | ----------------------- | ---- | ------------------------------------------------------------ | 2023| type | string | 是 | 事件回调类型,支持事件`'setSpeed'`:当设置播放速率的命令被发送到会话时,触发该事件。 | 2024| callback | (speed: number) => void | 是 | 回调函数。参数speed是播放倍速。 | 2025 2026**错误码:** 2027 2028以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2029 2030| 错误码ID | 错误信息 | 2031| -------- | ---------------------------------------- | 2032| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2033| 6600101 | Session service exception. | 2034| 6600102 | The session does not exist. | 2035 2036**示例:** 2037 2038```ts 2039currentAVSession.on('setSpeed', (speed: number) => { 2040 console.info(`on setSpeed speed : ${speed}`); 2041}); 2042``` 2043 2044### on('setLoopMode')<sup>10+</sup> 2045 2046on(type: 'setLoopMode', callback: (mode: LoopMode) => void): void 2047 2048设置循环模式的监听事件。 2049 2050**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2051 2052**系统能力:** SystemCapability.Multimedia.AVSession.Core 2053 2054**参数:** 2055 2056| 参数名 | 类型 | 必填 | 说明 | 2057| -------- | ------------------------------------- | ---- | ---- | 2058| type | string | 是 | 事件回调类型,支持事件`'setLoopMode'`:当设置循环模式的命令被发送到会话时,触发该事件。 | 2059| callback | (mode: [LoopMode](#loopmode10)) => void | 是 | 回调函数。参数mode是循环模式。 | 2060 2061**错误码:** 2062 2063以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2064 2065| 错误码ID | 错误信息 | 2066| -------- | ---------------------------------------- | 2067| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2068| 6600101 | Session service exception. | 2069| 6600102 | The session does not exist. | 2070 2071**示例:** 2072 2073```ts 2074currentAVSession.on('setLoopMode', (mode: avSession.LoopMode) => { 2075 console.info(`on setLoopMode mode : ${mode}`); 2076}); 2077``` 2078 2079### on('toggleFavorite')<sup>10+</sup> 2080 2081on(type: 'toggleFavorite', callback: (assetId: string) => void): void 2082 2083设置是否收藏的监听事件 2084 2085**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2086 2087**系统能力:** SystemCapability.Multimedia.AVSession.Core 2088 2089**参数:** 2090 2091| 参数名 | 类型 | 必填 | 说明 | 2092| -------- | ------------------------- | ---- | ------------------------------------------------------------ | 2093| type | string | 是 | 事件回调类型,支持事件`'toggleFavorite'`:当是否收藏的命令被发送到会话时,触发该事件。 | 2094| callback | (assetId: string) => void | 是 | 回调函数。参数assetId是媒体ID。 | 2095 2096**错误码:** 2097 2098以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2099 2100| 错误码ID | 错误信息 | 2101| -------- | ---------------------------------------- | 2102| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2103| 6600101 | Session service exception. | 2104| 6600102 | The session does not exist. | 2105 2106**示例:** 2107 2108```ts 2109currentAVSession.on('toggleFavorite', (assetId: string) => { 2110 console.info(`on toggleFavorite mode : ${assetId}`); 2111}); 2112``` 2113 2114### on('skipToQueueItem')<sup>10+</sup> 2115 2116on(type: 'skipToQueueItem', callback: (itemId: number) => void): void 2117 2118设置播放列表其中某项被选中的监听事件,session端可以选择对这个单项歌曲进行播放。 2119 2120**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2121 2122**系统能力:** SystemCapability.Multimedia.AVSession.Core 2123 2124**参数:** 2125 2126| 参数名 | 类型 | 必填 | 说明 | 2127| -------- | ------------------------ | ---- | ---------------------------------------------------------------------------------------- | 2128| type | string | 是 | 事件回调类型,支持事件`'skipToQueueItem'`:当播放列表选中单项的命令被发送到会话时,触发该事件。 | 2129| callback | (itemId: number) => void | 是 | 回调函数。参数itemId是选中的播放列表项的ID。 | 2130 2131**错误码:** 2132 2133以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2134 2135| 错误码ID | 错误信息 | 2136| -------- | ---------------------------------------- | 2137| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2138| 6600101 | Session service exception. | 2139| 6600102 | The session does not exist. | 2140 2141**示例:** 2142 2143```ts 2144currentAVSession.on('skipToQueueItem', (itemId: number) => { 2145 console.info(`on skipToQueueItem id : ${itemId}`); 2146}); 2147``` 2148 2149### on('handleKeyEvent')<sup>10+</sup> 2150 2151on(type: 'handleKeyEvent', callback: (event: KeyEvent) => void): void 2152 2153设置蓝牙/有线等外设接入的按键输入事件的监听,监听多媒体按键事件中播放、暂停、上下一首、快进、快退的指令。 2154 2155**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2156 2157**系统能力:** SystemCapability.Multimedia.AVSession.Core 2158 2159**参数:** 2160 2161| 参数名 | 类型 | 必填 | 说明 | 2162| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 2163| type | string | 是 | 事件回调类型,支持事件`'handleKeyEvent'`:当按键事件被发送到会话时,触发该事件。 | 2164| callback | (event: [KeyEvent](../apis-input-kit/js-apis-keyevent.md)) => void | 是 | 回调函数。参数event是按键事件。 | 2165 2166**错误码:** 2167 2168以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2169 2170| 错误码ID | 错误信息 | 2171| -------- | ---------------------------------------- | 2172| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2173| 6600101 | Session service exception. | 2174| 6600102 | The session does not exist. | 2175 2176**示例:** 2177 2178```ts 2179import { KeyEvent } from '@kit.InputKit'; 2180 2181currentAVSession.on('handleKeyEvent', (event: KeyEvent) => { 2182 console.info(`on handleKeyEvent event : ${event}`); 2183}); 2184 2185``` 2186 2187### on('outputDeviceChange')<sup>10+</sup> 2188 2189on(type: 'outputDeviceChange', callback: (state: ConnectionState, device: OutputDeviceInfo) => void): void 2190 2191设置播放设备变化的监听事件。应用接入[系统投播组件](ohos-multimedia-avcastpicker.md),当用户通过组件切换设备时,会收到设备切换的回调。 2192 2193**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2194 2195**系统能力:** SystemCapability.Multimedia.AVSession.Core 2196 2197**参数:** 2198 2199| 参数名 | 类型 | 必填 | 说明 | 2200| -------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ | 2201| type | string | 是 | 事件回调类型,支持事件`'outputDeviceChange'`:当播放设备变化时,触发该事件。 | 2202| callback | (state: [ConnectionState](#connectionstate10), device: [OutputDeviceInfo](#outputdeviceinfo10)) => void | 是 | 回调函数,参数device是设备相关信息。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2203 2204**错误码:** 2205 2206以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2207 2208| 错误码ID | 错误信息 | 2209| -------- | ---------------------------------------- | 2210| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2211| 6600101 | Session service exception. | 2212| 6600102 | The session does not exist. | 2213 2214**示例:** 2215 2216```ts 2217currentAVSession.on('outputDeviceChange', (state: avSession.ConnectionState, device: avSession.OutputDeviceInfo) => { 2218 console.info(`on outputDeviceChange device : ${device}`); 2219}); 2220``` 2221 2222### on('commonCommand')<sup>10+</sup> 2223 2224on(type: 'commonCommand', callback: (command: string, args: {[key: string]: Object}) => void): void 2225 2226设置自定义控制命令变化的监听器。 2227 2228**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2229 2230**系统能力:** SystemCapability.Multimedia.AVSession.Core 2231 2232**参数:** 2233 2234| 参数名 | 类型 | 必填 | 说明 | 2235| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 2236| type | string | 是 | 事件回调类型,支持事件`'commonCommand'`:当自定义控制命令变化时,触发该事件。 | 2237| callback | (command: string, args: {[key:string]: Object}) => void | 是 | 回调函数,command为变化的自定义控制命令名,args为自定义控制命令的参数,参数内容与[sendCommonCommand](#sendcommoncommand10)方法设置的参数内容完全一致。 | 2238 2239**错误码:** 2240 2241以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2242 2243| 错误码ID | 错误信息 | 2244| -------- | ------------------------------ | 2245| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2246| 6600101 | Session service exception. | 2247| 6600102 | The session does not exist. | 2248 2249**示例:** 2250 2251```ts 2252import { BusinessError } from '@kit.BasicServicesKit'; 2253 2254let currentAVSession: avSession.AVSession | undefined = undefined; 2255let tag = "createNewSession"; 2256let context: Context = getContext(this); 2257 2258avSession.createAVSession(context, tag, "audio", (err: BusinessError, data: avSession.AVSession) => { 2259 if (err) { 2260 console.error(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`); 2261 } else { 2262 currentAVSession = data; 2263 } 2264}); 2265if (currentAVSession !== undefined) { 2266 (currentAVSession as avSession.AVSession).on('commonCommand', (commonCommand, args) => { 2267 console.info(`OnCommonCommand, the command is ${commonCommand}, args: ${JSON.stringify(args)}`); 2268 }); 2269} 2270``` 2271 2272### off('play')<sup>10+</sup> 2273 2274off(type: 'play', callback?: () => void): void 2275 2276取消会话播放事件监听,关闭后,不再进行该事件回调。 2277 2278取消回调时,需要更新支持的命令列表。 2279 2280**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2281 2282**系统能力:** SystemCapability.Multimedia.AVSession.Core 2283 2284**参数:** 2285 2286| 参数名 | 类型 | 必填 | 说明 | 2287| -------- | -------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------- | 2288| type | string | 是 | 关闭对应的监听事件,支持的事件是`'play'`| 2289| callback | () => void | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2290 2291**错误码:** 2292 2293以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2294 2295| 错误码ID | 错误信息 | 2296| -------- | ---------------------------------------- | 2297| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2298| 6600101 | Session service exception. | 2299| 6600102 | The session does not exist. | 2300 2301**示例:** 2302 2303```ts 2304currentAVSession.off('play'); 2305``` 2306 2307### off('pause')<sup>10+</sup> 2308 2309off(type: 'pause', callback?: () => void): void 2310 2311取消会话暂停事件监听,关闭后,不再进行该事件回调。 2312 2313取消回调时,需要更新支持的命令列表。 2314 2315**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2316 2317**系统能力:** SystemCapability.Multimedia.AVSession.Core 2318 2319**参数:** 2320 2321| 参数名 | 类型 | 必填 | 说明 | 2322| -------- | -------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------- | 2323| type | string | 是 | 关闭对应的监听事件,支持的事件是`'pause'`。 | 2324| callback | () => void | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2325 2326**错误码:** 2327 2328以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2329 2330| 错误码ID | 错误信息 | 2331| -------- | ---------------------------------------- | 2332| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2333| 6600101 | Session service exception. | 2334| 6600102 | The session does not exist. | 2335 2336**示例:** 2337 2338```ts 2339currentAVSession.off('pause'); 2340``` 2341 2342### off('stop')<sup>10+</sup> 2343 2344off(type: 'stop', callback?: () => void): void 2345 2346取消会话停止事件监听,关闭后,不再进行该事件回调。 2347 2348取消回调时,需要更新支持的命令列表。 2349 2350**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2351 2352**系统能力:** SystemCapability.Multimedia.AVSession.Core 2353 2354**参数:** 2355 2356| 参数名 | 类型 | 必填 | 说明 | 2357| -------- | -------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------- | 2358| type | string | 是 | 关闭对应的监听事件,支持的事件是`'stop'`。 | 2359| callback | () => void | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2360 2361**错误码:** 2362 2363以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2364 2365| 错误码ID | 错误信息 | 2366| -------- | ---------------------------------------- | 2367| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2368| 6600101 | Session service exception. | 2369| 6600102 | The session does not exist. | 2370 2371**示例:** 2372 2373```ts 2374currentAVSession.off('stop'); 2375``` 2376 2377### off('playNext')<sup>10+</sup> 2378 2379off(type: 'playNext', callback?: () => void): void 2380 2381取消会话播放下一首事件监听,关闭后,不再进行该事件回调。 2382 2383取消回调时,需要更新支持的命令列表。 2384 2385**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2386 2387**系统能力:** SystemCapability.Multimedia.AVSession.Core 2388 2389**参数:** 2390 2391| 参数名 | 类型 | 必填 | 说明 | 2392| -------- | -------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------- | 2393| type | string | 是 | 关闭对应的监听事件,支持的事件是 `'playNext'`。 | 2394| callback | () => void | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2395 2396**错误码:** 2397 2398以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2399 2400| 错误码ID | 错误信息 | 2401| -------- | ---------------------------------------- | 2402| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2403| 6600101 | Session service exception. | 2404| 6600102 | The session does not exist. | 2405 2406**示例:** 2407 2408```ts 2409currentAVSession.off('playNext'); 2410``` 2411 2412### off('playPrevious')<sup>10+</sup> 2413 2414off(type: 'playPrevious', callback?: () => void): void 2415 2416取消会话播放上一首事件监听,关闭后,不再进行该事件回调。 2417 2418取消回调时,需要更新支持的命令列表。 2419 2420**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2421 2422**系统能力:** SystemCapability.Multimedia.AVSession.Core 2423 2424**参数:** 2425 2426| 参数名 | 类型 | 必填 | 说明 | 2427| -------- | -------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------- | 2428| type | string | 是 | 关闭对应的监听事件,支持的事件是`'playPrevious'`。 | 2429| callback | () => void | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2430 2431**错误码:** 2432 2433以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2434 2435| 错误码ID | 错误信息 | 2436| -------- | ---------------------------------------- | 2437| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2438| 6600101 | Session service exception. | 2439| 6600102 | The session does not exist. | 2440 2441**示例:** 2442 2443```ts 2444currentAVSession.off('playPrevious'); 2445``` 2446 2447### off('fastForward')<sup>10+</sup> 2448 2449off(type: 'fastForward', callback?: () => void): void 2450 2451取消会话快进事件监听,关闭后,不再进行该事件回调。 2452 2453取消回调时,需要更新支持的命令列表。 2454 2455**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2456 2457**系统能力:** SystemCapability.Multimedia.AVSession.Core 2458 2459**参数:** 2460 2461| 参数名 | 类型 | 必填 | 说明 | 2462| -------- | -------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------- | 2463| type | string | 是 | 关闭对应的监听事件,支持的事件是`'fastForward'`。 | 2464| callback | () => void | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2465 2466**错误码:** 2467 2468以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2469 2470| 错误码ID | 错误信息 | 2471| -------- | ---------------------------------------- | 2472| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2473| 6600101 | Session service exception. | 2474| 6600102 | The session does not exist. | 2475 2476**示例:** 2477 2478```ts 2479currentAVSession.off('fastForward'); 2480``` 2481 2482### off('rewind')<sup>10+</sup> 2483 2484off(type: 'rewind', callback?: () => void): void 2485 2486取消会话快退事件监听,关闭后,不再进行该事件回调。 2487 2488**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2489 2490**系统能力:** SystemCapability.Multimedia.AVSession.Core 2491 2492**参数:** 2493 2494| 参数名 | 类型 | 必填 | 说明 | 2495| -------- | -------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------- | 2496| type | string | 是 | 关闭对应的监听事件,支持的事件是`'rewind'`。 | 2497| callback | () => void | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2498 2499**错误码:** 2500 2501以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2502 2503| 错误码ID | 错误信息 | 2504| -------- | ---------------------------------------- | 2505| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2506| 6600101 | Session service exception. | 2507| 6600102 | The session does not exist. | 2508 2509**示例:** 2510 2511```ts 2512currentAVSession.off('rewind'); 2513``` 2514 2515### off('seek')<sup>10+</sup> 2516 2517off(type: 'seek', callback?: (time: number) => void): void 2518 2519取消监听跳转节点事件。 2520 2521**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2522 2523**系统能力:** SystemCapability.Multimedia.AVSession.Core 2524 2525**参数:** 2526 2527| 参数名 | 类型 | 必填 | 说明 | 2528| -------- | ---------------------- | ---- | ----------------------------------------- | 2529| type | string | 是 | 关闭对应的监听事件,支持关闭事件`'seek'`。 | 2530| callback | (time: number) => void | 否 | 回调函数,参数time是时间节点,单位为毫秒。<br>当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2531 2532**错误码:** 2533 2534以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2535 2536| 错误码ID | 错误信息 | 2537| -------- | ---------------------------------------- | 2538| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2539| 6600101 | Session service exception. | 2540| 6600102 | The session does not exist. | 2541 2542**示例:** 2543 2544```ts 2545currentAVSession.off('seek'); 2546``` 2547 2548### off('setSpeed')<sup>10+</sup> 2549 2550off(type: 'setSpeed', callback?: (speed: number) => void): void 2551 2552取消监听播放速率变化事件。 2553 2554**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2555 2556**系统能力:** SystemCapability.Multimedia.AVSession.Core 2557 2558**参数:** 2559 2560| 参数名 | 类型 | 必填 | 说明 | 2561| -------- | ----------------------- | ---- | -------------------------------------------| 2562| type | string | 是 | 关闭对应的监听事件,支持关闭事件`'setSpeed'`。 | 2563| callback | (speed: number) => void | 否 | 回调函数,参数speed是播放倍速。<br>当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2564 2565**错误码:** 2566 2567以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2568 2569| 错误码ID | 错误信息 | 2570| -------- | ---------------------------------------- | 2571| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2572| 6600101 | Session service exception. | 2573| 6600102 | The session does not exist. | 2574 2575**示例:** 2576 2577```ts 2578currentAVSession.off('setSpeed'); 2579``` 2580 2581### off('setLoopMode')<sup>10+</sup> 2582 2583off(type: 'setLoopMode', callback?: (mode: LoopMode) => void): void 2584 2585取消监听循环模式变化事件。 2586 2587**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2588 2589**系统能力:** SystemCapability.Multimedia.AVSession.Core 2590 2591**参数:** 2592 2593| 参数名 | 类型 | 必填 | 说明 | 2594| -------- | ------------------------------------- | ---- | ----- | 2595| type | string | 是 | 关闭对应的监听事件,支持关闭事件`'setLoopMode'`。| 2596| callback | (mode: [LoopMode](#loopmode10)) => void | 否 | 回调函数,参数mode是循环模式。<br>当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2597 2598**错误码:** 2599 2600以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2601 2602| 错误码ID | 错误信息 | 2603| -------- | ---------------------------------------- | 2604| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2605| 6600101 | Session service exception. | 2606| 6600102 | The session does not exist. | 2607 2608**示例:** 2609 2610```ts 2611currentAVSession.off('setLoopMode'); 2612``` 2613 2614### off('toggleFavorite')<sup>10+</sup> 2615 2616off(type: 'toggleFavorite', callback?: (assetId: string) => void): void 2617 2618取消监听是否收藏的事件 2619 2620**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2621 2622**系统能力:** SystemCapability.Multimedia.AVSession.Core 2623 2624**参数:** 2625 2626| 参数名 | 类型 | 必填 | 说明 | 2627| -------- | ------------------------- | ---- | -------------------------------------------------------- | 2628| type | string | 是 | 关闭对应的监听事件,支持关闭事件`'toggleFavorite'`。 | 2629| callback | (assetId: string) => void | 否 | 回调函数,参数assetId是媒体ID。<br>当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2630 2631**错误码:** 2632 2633以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2634 2635| 错误码ID | 错误信息 | 2636| -------- | ---------------------------------------- | 2637| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2638| 6600101 | Session service exception. | 2639| 6600102 | The session does not exist. | 2640 2641**示例:** 2642 2643```ts 2644currentAVSession.off('toggleFavorite'); 2645``` 2646 2647### off('skipToQueueItem')<sup>10+</sup> 2648 2649off(type: 'skipToQueueItem', callback?: (itemId: number) => void): void 2650 2651取消监听播放列表单项选中的事件 2652 2653**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2654 2655**系统能力:** SystemCapability.Multimedia.AVSession.Core 2656 2657**参数:** 2658 2659| 参数名 | 类型 | 必填 | 说明 | 2660| -------- | ------------------------ | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | 2661| type | string | 是 | 关闭对应的监听事件,支持关闭事件`'skipToQueueItem'`。 | 2662| callback | (itemId: number) => void | 否 | 回调函数,参数itemId是播放列表单项ID。<br>当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2663 2664**错误码:** 2665 2666以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2667 2668| 错误码ID | 错误信息 | 2669| -------- | ---------------------------------------- | 2670| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2671| 6600101 | Session service exception. | 2672| 6600102 | The session does not exist. | 2673 2674**示例:** 2675 2676```ts 2677currentAVSession.off('skipToQueueItem'); 2678``` 2679 2680### off('handleKeyEvent')<sup>10+</sup> 2681 2682off(type: 'handleKeyEvent', callback?: (event: KeyEvent) => void): void 2683 2684取消监听按键事件。 2685 2686**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2687 2688**系统能力:** SystemCapability.Multimedia.AVSession.Core 2689 2690**参数:** 2691 2692| 参数名 | 类型 | 必填 | 说明 | 2693| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 2694| type | string | 是 | 关闭对应的监听事件,支持关闭事件`'handleKeyEvent'`。 | 2695| callback | (event: [KeyEvent](../apis-input-kit/js-apis-keyevent.md)) => void | 否 | 回调函数,参数event是按键事件。<br>当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2696 2697**错误码:** 2698 2699以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2700 2701| 错误码ID | 错误信息 | 2702| -------- | ---------------------------------------- | 2703| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2704| 6600101 | Session service exception. | 2705| 6600102 | The session does not exist. | 2706 2707**示例:** 2708 2709```ts 2710currentAVSession.off('handleKeyEvent'); 2711``` 2712 2713### off('outputDeviceChange')<sup>10+</sup> 2714 2715off(type: 'outputDeviceChange', callback?: (state: ConnectionState, device: OutputDeviceInfo) => void): void 2716 2717取消监听播放设备变化的事件。 2718 2719**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2720 2721**系统能力:** SystemCapability.Multimedia.AVSession.Core 2722 2723**参数:** 2724 2725| 参数名 | 类型 | 必填 | 说明 | 2726| -------- | ------------------------------------------------------- | ---- | ------------------------------------------------------ | 2727| type | string | 是 | 关闭对应的监听事件,支持关闭事件`'outputDeviceChange'`。 | 2728| callback | (state: [ConnectionState](#connectionstate10), device: [OutputDeviceInfo](#outputdeviceinfo10)) => void | 否 | 回调函数,参数device是设备相关信息。<br>当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2729 2730**错误码:** 2731 2732以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2733 2734| 错误码ID | 错误信息 | 2735| -------- | ---------------------------------------- | 2736| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2737| 6600101 | Session service exception. | 2738| 6600102 | The session does not exist. | 2739 2740**示例:** 2741 2742```ts 2743currentAVSession.off('outputDeviceChange'); 2744``` 2745 2746 2747### off('commonCommand')<sup>10+</sup> 2748 2749off(type: 'commonCommand', callback?: (command: string, args: {[key:string]: Object}) => void): void 2750 2751取消监听自定义控制命令的变化。 2752 2753**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2754 2755**系统能力:** SystemCapability.Multimedia.AVSession.Core 2756 2757**参数:** 2758 2759| 参数名 | 类型 | 必填 | 说明 | 2760| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- | 2761| type | string | 是 | 取消对应的监听事件,支持事件`'commonCommand'`。 | 2762| callback | (command: string, args: {[key:string]: Object}) => void | 否 | 回调函数,参数command是变化的自定义控制命令名,args为自定义控制命令的参数。<br>该参数为可选参数,若不填写该参数,则认为取消所有对command事件的监听。 | 2763 2764**错误码:** 2765 2766以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2767 2768| 错误码ID | 错误信息 | 2769| -------- | ---------------- | 2770| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2771| 6600101 | Session service exception. | 2772| 6600102 | The session does not exist. | 2773 2774**示例:** 2775 2776```ts 2777currentAVSession.off('commonCommand'); 2778``` 2779 2780### on('answer')<sup>11+</sup> 2781 2782on(type: 'answer', callback: Callback\<void>): void; 2783 2784设置通话接听的监听事件。 2785 2786**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2787 2788**系统能力:** SystemCapability.Multimedia.AVSession.Core 2789 2790**参数:** 2791 2792| 参数名 | 类型 | 必填 | 说明 | 2793| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 2794| type | string | 是 | 事件回调类型,支持事件`'answer'`:当通话接听时,触发该事件。 | 2795| callback | Callback\<void> | 是 | 回调函数 | 2796 2797**错误码:** 2798 2799以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2800 2801| 错误码ID | 错误信息 | 2802| -------- | ------------------------------ | 2803| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2804| 6600101 | Session service exception. | 2805| 6600102 | The session does not exist. | 2806 2807**示例:** 2808 2809```ts 2810currentAVSession.on('answer', () => { 2811 console.info('on call answer'); 2812}); 2813``` 2814 2815### off('answer')<sup>11+</sup> 2816 2817off(type: 'answer', callback?: Callback\<void>): void; 2818 2819取消通话接听事件的监听。 2820 2821**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2822 2823**系统能力:** SystemCapability.Multimedia.AVSession.Core 2824 2825**参数:** 2826 2827| 参数名 | 类型 | 必填 | 说明 | 2828| -------- | -------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------- | 2829| type | string | 是 | 关闭对应的监听事件,支持的事件是`'answer'`。 | 2830| callback | Callback\<void> | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2831 2832**错误码:** 2833 2834以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2835 2836| 错误码ID | 错误信息 | 2837| -------- | ---------------------------------------- | 2838| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2839| 6600101 | Session service exception. | 2840| 6600102 | The session does not exist. | 2841 2842**示例:** 2843 2844```ts 2845currentAVSession.off('answer'); 2846``` 2847 2848### on('hangUp')<sup>11+</sup> 2849 2850on(type: 'hangUp', callback: Callback\<void>): void; 2851 2852设置通话挂断的监听事件。 2853 2854**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2855 2856**系统能力:** SystemCapability.Multimedia.AVSession.Core 2857 2858**参数:** 2859 2860| 参数名 | 类型 | 必填 | 说明 | 2861| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 2862| type | string | 是 | 事件回调类型,支持事件`'hangUp'`:当通话挂断时,触发该事件。 | 2863| callback | Callback\<void> | 是 | 回调函数 | 2864 2865**错误码:** 2866 2867以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2868 2869| 错误码ID | 错误信息 | 2870| -------- | ------------------------------ | 2871| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2872| 6600101 | Session service exception. | 2873| 6600102 | The session does not exist. | 2874 2875**示例:** 2876 2877```ts 2878currentAVSession.on('hangUp', () => { 2879 console.info('on call hangUp'); 2880}); 2881``` 2882 2883### off('hangUp')<sup>11+</sup> 2884 2885off(type: 'hangUp', callback?: Callback\<void>): void; 2886 2887取消通话挂断事件的监听。 2888 2889**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2890 2891**系统能力:** SystemCapability.Multimedia.AVSession.Core 2892 2893**参数:** 2894 2895| 参数名 | 类型 | 必填 | 说明 | 2896| -------- | -------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------- | 2897| type | string | 是 | 关闭对应的监听事件,支持的事件是`'hangUp'`。 | 2898| callback | Callback\<void> | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2899 2900**错误码:** 2901 2902以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2903 2904| 错误码ID | 错误信息 | 2905| -------- | ---------------------------------------- | 2906| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2907| 6600101 | Session service exception. | 2908| 6600102 | The session does not exist. | 2909 2910**示例:** 2911 2912```ts 2913currentAVSession.off('hangUp'); 2914``` 2915 2916### on('toggleCallMute')<sup>11+</sup> 2917 2918on(type: 'toggleCallMute', callback: Callback\<void>): void; 2919 2920设置通话静音的监听事件。 2921 2922**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2923 2924**系统能力:** SystemCapability.Multimedia.AVSession.Core 2925 2926**参数:** 2927 2928| 参数名 | 类型 | 必填 | 说明 | 2929| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 2930| type | string | 是 | 事件回调类型,支持事件`'toggleCallMute'`:当通话静音或解除静音时,触发该事件。 | 2931| callback | Callback\<void> | 是 | 回调函数 | 2932 2933**错误码:** 2934 2935以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2936 2937| 错误码ID | 错误信息 | 2938| -------- | ------------------------------ | 2939| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2940| 6600101 | Session service exception. | 2941| 6600102 | The session does not exist. | 2942 2943**示例:** 2944 2945```ts 2946currentAVSession.on('toggleCallMute', () => { 2947 console.info('on call toggleCallMute'); 2948}); 2949``` 2950 2951### off('toggleCallMute')<sup>11+</sup> 2952 2953off(type: 'toggleCallMute', callback?: Callback\<void>): void; 2954 2955取消通话静音事件的监听。 2956 2957**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2958 2959**系统能力:** SystemCapability.Multimedia.AVSession.Core 2960 2961**参数:** 2962 2963| 参数名 | 类型 | 必填 | 说明 | 2964| -------- | -------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------- | 2965| type | string | 是 | 关闭对应的监听事件,支持的事件是`'toggleCallMute'`。 | 2966| callback | Callback\<void> | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 2967 2968**错误码:** 2969 2970以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 2971 2972| 错误码ID | 错误信息 | 2973| -------- | ---------------------------------------- | 2974| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 2975| 6600101 | Session service exception. | 2976| 6600102 | The session does not exist. | 2977 2978**示例:** 2979 2980```ts 2981currentAVSession.off('toggleCallMute'); 2982``` 2983 2984### on('castDisplayChange')<sup>12+</sup> 2985 2986on(type: 'castDisplayChange', callback: Callback\<CastDisplayInfo>): void 2987 2988设置扩展屏投播显示设备变化的监听事件。 2989 2990**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2991 2992**系统能力:** SystemCapability.Multimedia.AVSession.ExtendedDisplayCast 2993 2994**参数:** 2995 2996| 参数名 | 类型 | 必填 | 说明 | 2997| -------- | -------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------- | 2998| type | string | 是 | 事件回调类型,支持事件`'castDisplayChange'`:当扩展屏投播显示设备变化时触发事件。 | 2999| callback | Callback<[CastDisplayInfo](#castdisplayinfo12)> | 是 | 回调函数。参数是扩展屏投播显示设备信息。 | 3000 3001**错误码:** 3002 3003以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3004 3005| 错误码ID | 错误信息 | 3006| -------- | ---------------------------------------- | 3007| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 3008| 6600101 | Session service exception. | 3009| 6600102 | The session does not exist. | 3010 3011**示例:** 3012 3013```ts 3014let castDisplay: avSession.CastDisplayInfo; 3015currentAVSession.on('castDisplayChange', (display: avSession.CastDisplayInfo) => { 3016 if (display.state === avSession.CastDisplayState.STATE_ON) { 3017 castDisplay = display; 3018 console.info(`Succeeded in castDisplayChange display : ${display.id} ON`); 3019 } else if (display.state === avSession.CastDisplayState.STATE_OFF){ 3020 console.info(`Succeeded in castDisplayChange display : ${display.id} OFF`); 3021 } 3022}); 3023``` 3024### off('castDisplayChange')<sup>12+</sup> 3025 3026 off(type: 'castDisplayChange', callback?: Callback\<CastDisplayInfo>): void 3027 3028取消扩展屏投播显示设备变化事件监听,关闭后,不再进行该事件回调。 3029 3030**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3031 3032**系统能力:** SystemCapability.Multimedia.AVSession.ExtendedDisplayCast 3033 3034**参数:** 3035 3036| 参数名 | 类型 | 必填 | 说明 | 3037| -------- | -------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------- | 3038| type | string | 是 | 关闭对应的监听事件,支持的事件是`'castDisplayChange'`。 | 3039| callback | Callback<[CastDisplayInfo](#castdisplayinfo12)> | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 3040 3041**错误码:** 3042 3043以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3044 3045| 错误码ID | 错误信息 | 3046| -------- | ---------------------------------------- | 3047| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 3048| 6600101 | Session service exception. | 3049| 6600102 | The session does not exist. | 3050 3051**示例:** 3052 3053```ts 3054currentAVSession.off('castDisplayChange'); 3055``` 3056 3057### stopCasting<sup>10+</sup> 3058 3059stopCasting(callback: AsyncCallback\<void>): void 3060 3061结束投播。结果通过callback异步回调方式返回。 3062 3063**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3064 3065**参数:** 3066 3067| 参数名 | 类型 | 必填 | 说明 | 3068| -------- | ------------------------------------- | ---- | ------------------------------------- | 3069| callback | AsyncCallback\<void> | 是 | 回调函数。当命令发送成功,err为undefined,否则返回错误对象。 | 3070 3071**错误码:** 3072 3073以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3074 3075| 错误码ID | 错误信息 | 3076| -------- | ---------------------------------------- | 3077| 6600109 | The remote connection is not established. | 3078 3079**示例:** 3080 3081```ts 3082import { BusinessError } from '@kit.BasicServicesKit'; 3083 3084currentAVSession.stopCasting((err: BusinessError) => { 3085 if (err) { 3086 console.error(`stopCasting BusinessError: code: ${err.code}, message: ${err.message}`); 3087 } else { 3088 console.info('stopCasting successfully'); 3089 } 3090}); 3091``` 3092 3093### stopCasting<sup>10+</sup> 3094 3095stopCasting(): Promise\<void> 3096 3097结束投播。结果通过Promise异步回调方式返回。 3098 3099**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3100 3101**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3102 3103**返回值:** 3104 3105| 类型 | 说明 | 3106| -------------- | ----------------------------- | 3107| Promise\<void> | Promise对象。当成功结束投播,无返回结果,否则返回错误对象。 | 3108 3109**错误码:** 3110 3111以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3112 3113| 错误码ID | 错误信息 | 3114| -------- | ---------------------------------------- | 3115| 6600109 | The remote connection is not established. | 3116 3117**示例:** 3118 3119```ts 3120import { BusinessError } from '@kit.BasicServicesKit'; 3121 3122currentAVSession.stopCasting().then(() => { 3123 console.info('stopCasting successfully'); 3124}).catch((err: BusinessError) => { 3125 console.error(`stopCasting BusinessError: code: ${err.code}, message: ${err.message}`); 3126}); 3127``` 3128 3129### getOutputDeviceSync<sup>10+</sup> 3130 3131getOutputDeviceSync(): OutputDeviceInfo 3132 3133使用同步方法获取当前输出设备信息。 3134 3135**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3136 3137**系统能力:** SystemCapability.Multimedia.AVSession.Core 3138 3139**返回值:** 3140 3141| 类型 | 说明 | 3142| ----------------------------------------------- | --------------------------------- | 3143| [OutputDeviceInfo](#outputdeviceinfo10) | 当前输出设备信息。 | 3144 3145**错误码:** 3146 3147以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3148 3149| 错误码ID | 错误信息 | 3150|---------| --------------------------------------- | 3151| 6600101 | Session service exception. | 3152| 6600102 | The session does not exist. | 3153 3154**示例:** 3155 3156```ts 3157import { BusinessError } from '@kit.BasicServicesKit'; 3158 3159try { 3160 let currentOutputDevice: avSession.OutputDeviceInfo = currentAVSession.getOutputDeviceSync(); 3161} catch (err) { 3162 let error = err as BusinessError; 3163 console.error(`getOutputDeviceSync error, error code: ${error.code}, error message: ${error.message}`); 3164} 3165``` 3166### getAllCastDisplays<sup>12+</sup> 3167 3168getAllCastDisplays(): Promise<Array\<CastDisplayInfo>> 3169 3170获取当前系统中所有支持扩展屏投播的显示设备。通过Promise异步回调方式返回。 3171 3172**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3173 3174**系统能力:** SystemCapability.Multimedia.AVSession.ExtendedDisplayCast 3175 3176**返回值:** 3177 3178| 类型 | 说明 | 3179| ----------------------------------------------- | --------------------------------- | 3180| Promise<Array<[CastDisplayInfo](#castdisplayinfo12)>>| Promise对象,返回当前系统中所有支持扩展屏投播的显示设备。 | 3181 3182**错误码:** 3183 3184以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3185 3186| 错误码ID | 错误信息 | 3187|---------| --------------------------------------- | 3188| 6600101 | Session service exception. | 3189| 6600102 | The session does not exist. | 3190 3191**示例:** 3192 3193```ts 3194import { BusinessError } from '@kit.BasicServicesKit'; 3195 3196let castDisplay: avSession.CastDisplayInfo; 3197currentAVSession.getAllCastDisplays().then((data: Array< avSession.CastDisplayInfo >) => { 3198 if (data.length >= 1) { 3199 castDisplay = data[0]; 3200 } 3201 }).catch((err: BusinessError) => { 3202 console.error(`Failed to getAllCastDisplay. Code: ${err.code}, message: ${err.message}`); 3203 }); 3204``` 3205 3206## AVCastControlCommandType<sup>10+</sup> 3207 3208type AVCastControlCommandType = 'play' | 'pause' | 'stop' | 'playNext' | 'playPrevious' | 'fastForward' | 'rewind' | 3209 'seek' | 'setVolume' | 'setSpeed' | 'setLoopMode' | 'toggleFavorite' | 'toggleMute' 3210 3211投播控制器可传递的命令。 3212 3213**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3214 3215**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3216 3217| 类型 | 说明 | 3218| ---------------- | ------------ | 3219| 'play' | 播放 | 3220| 'pause' | 暂停 | 3221| 'stop' | 停止 | 3222| 'playNext' | 下一首 | 3223| 'playPrevious' | 上一首 | 3224| 'fastForward' | 快进 | 3225| 'rewind' | 快退 | 3226| 'seek' | 跳转某一节点 | 3227| 'setVolume' | 设置音量 | 3228| 'setSpeed' | 设置播放倍速 | 3229| 'setLoopMode' | 设置循环模式 | 3230| 'toggleFavorite' | 是否收藏 | 3231| 'toggleMute' | 设置静音状态 | 3232 3233## AVCastControlCommand<sup>10+</sup> 3234 3235投播控制器接受的命令的对象描述。 3236 3237**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3238 3239**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3240 3241| 名称 | 类型 | 必填 | 说明 | 3242| --------- | ------------------------------------------------- | ---- | -------------- | 3243| command | [AVCastControlCommandType](#avcastcontrolcommandtype10) | 是 | 命令 | 3244| parameter | [media.PlaybackSpeed](../apis-media-kit/js-apis-media.md#playbackspeed8) | number | string | [LoopMode](#loopmode10) | 否 | 命令对应的参数 | 3245 3246## AVCastController<sup>10+</sup> 3247 3248在投播建立后,调用[avSession.getAVCastController](#getavcastcontroller10)后,返回会话控制器实例。控制器可查看会话ID,并可完成对会话发送命令及事件,获取会话元数据,播放状态信息等操作。 3249 3250### getAVPlaybackState<sup>10+</sup> 3251 3252getAVPlaybackState(callback: AsyncCallback\<AVPlaybackState>): void 3253 3254获取当前的远端播放状态。结果通过callback异步回调方式返回。 3255 3256**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3257 3258**参数:** 3259 3260| 参数名 | 类型 | 必填 | 说明 | 3261| --------- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ | 3262| callback | AsyncCallback<[AVPlaybackState](#avplaybackstate10)\> | 是 | 回调函数,返回远端播放状态。 | 3263 3264**错误码:** 3265 3266以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3267 3268| 错误码ID | 错误信息 | 3269| -------- | ---------------------------------------- | 3270| 6600101 | Session service exception | 3271 3272**示例:** 3273 3274```ts 3275import { BusinessError } from '@kit.BasicServicesKit'; 3276 3277aVCastController.getAVPlaybackState((err: BusinessError, state: avSession.AVPlaybackState) => { 3278 if (err) { 3279 console.error(`getAVPlaybackState BusinessError: code: ${err.code}, message: ${err.message}`); 3280 } else { 3281 console.info('getAVPlaybackState : SUCCESS'); 3282 } 3283}); 3284``` 3285 3286### getAVPlaybackState<sup>10+</sup> 3287 3288getAVPlaybackState(): Promise\<AVPlaybackState> 3289 3290获取当前的远端播放状态。结果通过Promise异步回调方式返回。 3291 3292**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3293 3294**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3295 3296**返回值:** 3297 3298| 类型 | 说明 | 3299| --------- | ------------------------------------------------------------ | 3300| Promise<[AVPlaybackState](#avplaybackstate10)\> | Promise对象。返回远端播放状态。 | 3301 3302**错误码:** 3303 3304以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3305 3306| 错误码ID | 错误信息 | 3307| -------- | ---------------------------------------- | 3308| 6600101 | Session service exception | 3309 3310**示例:** 3311 3312```ts 3313import { BusinessError } from '@kit.BasicServicesKit'; 3314 3315aVCastController.getAVPlaybackState().then((state: avSession.AVPlaybackState) => { 3316 console.info('getAVPlaybackState : SUCCESS'); 3317}).catch((err: BusinessError) => { 3318 console.error(`getAVPlaybackState BusinessError: code: ${err.code}, message: ${err.message}`); 3319}); 3320``` 3321 3322### sendControlCommand<sup>10+</sup> 3323 3324sendControlCommand(command: AVCastControlCommand): Promise\<void> 3325 3326通过控制器发送命令到其对应的会话。结果通过Promise异步回调方式返回。 3327 3328 3329**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3330 3331**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3332 3333**参数:** 3334 3335| 参数名 | 类型 | 必填 | 说明 | 3336| ------- | ------------------------------------- | ---- | ------------------------------ | 3337| command | [AVCastControlCommand](#avcastcontrolcommand10) | 是 | 会话的相关命令和命令相关参数。 | 3338 3339**返回值:** 3340 3341| 类型 | 说明 | 3342| -------------- | ----------------------------- | 3343| Promise\<void> | Promise对象。当命令发送成功,无返回结果,否则返回错误对象。 | 3344 3345**错误码:** 3346 3347以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3348 3349| 错误码ID | 错误信息 | 3350| -------- | ---------------------------------------- | 3351| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 3352| 6600101 | Session service exception. | 3353| 6600105 | Invalid session command. | 3354| 6600109 | The remote connection is not established. | 3355 3356**示例:** 3357 3358```ts 3359import { BusinessError } from '@kit.BasicServicesKit'; 3360 3361let avCommand: avSession.AVCastControlCommand = {command:'play'}; 3362aVCastController.sendControlCommand(avCommand).then(() => { 3363 console.info('SendControlCommand successfully'); 3364}).catch((err: BusinessError) => { 3365 console.error(`SendControlCommand BusinessError: code: ${err.code}, message: ${err.message}`); 3366}); 3367``` 3368 3369### sendControlCommand<sup>10+</sup> 3370 3371sendControlCommand(command: AVCastControlCommand, callback: AsyncCallback\<void>): void 3372 3373通过会话控制器发送命令到其对应的会话。结果通过callback异步回调方式返回。 3374 3375 3376**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3377 3378**参数:** 3379 3380| 参数名 | 类型 | 必填 | 说明 | 3381| -------- | ------------------------------------- | ---- | ------------------------------ | 3382| command | [AVCastControlCommand](#avcastcontrolcommand10) | 是 | 会话的相关命令和命令相关参数。 | 3383| callback | AsyncCallback\<void> | 是 | 回调函数。当命令发送成功,err为undefined,否则返回错误对象。 | 3384 3385**错误码:** 3386 3387以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3388 3389| 错误码ID | 错误信息 | 3390| -------- | ------------------------------- | 3391| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 3392| 6600101 | Session service exception. | 3393| 6600105 | Invalid session command. | 3394| 6600109 | The remote connection is not established. | 3395 3396**示例:** 3397 3398```ts 3399import { BusinessError } from '@kit.BasicServicesKit'; 3400 3401let avCommand: avSession.AVCastControlCommand = {command:'play'}; 3402aVCastController.sendControlCommand(avCommand, (err: BusinessError) => { 3403 if (err) { 3404 console.error(`SendControlCommand BusinessError: code: ${err.code}, message: ${err.message}`); 3405 } else { 3406 console.info('SendControlCommand successfully'); 3407 } 3408}); 3409``` 3410 3411### prepare<sup>10+</sup> 3412 3413prepare(item: AVQueueItem, callback: AsyncCallback\<void>): void 3414 3415准备播放媒体资源,即进行播放资源的加载和缓冲。结果通过callback异步回调方式返回。 3416 3417**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3418 3419**参数:** 3420 3421| 参数名 | 类型 | 必填 | 说明 | 3422| ------- | ------------------------------------- | ---- | ------------------------------ | 3423| item | [AVQueueItem](#avqueueitem10) | 是 | 播放列表中单项的相关属性。 | 3424| callback | AsyncCallback\<void> | 是 | 回调函数。当命令发送成功,err为undefined,否则返回错误对象。 | 3425 3426**错误码:** 3427 3428以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3429 3430| 错误码ID | 错误信息 | 3431| -------- | ---------------------------------------- | 3432| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 3433| 6600101 | Session service exception. | 3434| 6600109 | The remote connection is not established. | 3435 3436**示例:** 3437 3438```ts 3439import { BusinessError } from '@kit.BasicServicesKit'; 3440 3441// 设置播放参数,开始播放 3442let playItem: avSession.AVQueueItem = { 3443 itemId: 0, 3444 description: { 3445 assetId: '12345', 3446 mediaType: 'AUDIO', 3447 mediaUri: 'http://resource1_address', 3448 mediaSize: 12345, 3449 startPosition: 0, 3450 duration: 0, 3451 artist: 'mysong', 3452 albumTitle: 'song1_title', 3453 albumCoverUri: "http://resource1_album_address", 3454 lyricUri: "http://resource1_lyric_address", 3455 appName: 'MyMusic' 3456 } 3457}; 3458// 准备播放,这个不会触发真正的播放,会进行加载和缓冲 3459aVCastController.prepare(playItem, (err: BusinessError) => { 3460 if (err) { 3461 console.error(`prepare BusinessError: code: ${err.code}, message: ${err.message}`); 3462 } else { 3463 console.info('prepare successfully'); 3464 } 3465}); 3466``` 3467 3468 3469### prepare<sup>10+</sup> 3470 3471prepare(item: AVQueueItem): Promise\<void> 3472 3473准备播放媒体资源,即进行播放资源的加载和缓冲。结果通过Promise异步回调方式返回。 3474 3475 3476**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3477 3478**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3479 3480**参数:** 3481 3482| 参数名 | 类型 | 必填 | 说明 | 3483| ------- | ------------------------------------- | ---- | ------------------------------ | 3484| item | [AVQueueItem](#avqueueitem10) | 是 | 播放列表中单项的相关属性。 | 3485 3486**返回值:** 3487 3488| 类型 | 说明 | 3489| -------------- | ----------------------------- | 3490| Promise\<void> | Promise对象。当命令发送成功,无返回结果,否则返回错误对象。 | 3491 3492**错误码:** 3493 3494以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3495 3496| 错误码ID | 错误信息 | 3497| -------- | ---------------------------------------- | 3498| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 3499| 6600101 | Session service exception. | 3500| 6600109 | The remote connection is not established. | 3501 3502 3503**示例:** 3504 3505```ts 3506import { BusinessError } from '@kit.BasicServicesKit'; 3507 3508// 设置播放参数,开始播放 3509let playItem: avSession.AVQueueItem = { 3510 itemId: 0, 3511 description: { 3512 assetId: '12345', 3513 mediaType: 'AUDIO', 3514 mediaUri: 'http://resource1_address', 3515 mediaSize: 12345, 3516 startPosition: 0, 3517 duration: 0, 3518 artist: 'mysong', 3519 albumTitle: 'song1_title', 3520 albumCoverUri: "http://resource1_album_address", 3521 lyricUri: "http://resource1_lyric_address", 3522 appName: 'MyMusic' 3523 } 3524}; 3525// 准备播放,这个不会触发真正的播放,会进行加载和缓冲 3526aVCastController.prepare(playItem).then(() => { 3527 console.info('prepare successfully'); 3528}).catch((err: BusinessError) => { 3529 console.error(`prepare BusinessError: code: ${err.code}, message: ${err.message}`); 3530}); 3531``` 3532 3533### start<sup>10+</sup> 3534 3535start(item: AVQueueItem, callback: AsyncCallback\<void>): void 3536 3537启动播放某个媒体资源。结果通过callback异步回调方式返回。 3538 3539**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3540 3541**参数:** 3542 3543| 参数名 | 类型 | 必填 | 说明 | 3544| ------- | ------------------------------------- | ---- | ------------------------------ | 3545| item | [AVQueueItem](#avqueueitem10) | 是 | 播放列表中单项的相关属性。 | 3546| callback | AsyncCallback\<void> | 是 | 回调函数。当命令发送成功,err为undefined,否则返回错误对象。 | 3547 3548**错误码:** 3549 3550以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3551 3552| 错误码ID | 错误信息 | 3553| -------- | ---------------------------------------- | 3554| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 3555| 6600101 | Session service exception. | 3556| 6600109 | The remote connection is not established. | 3557 3558**示例:** 3559 3560```ts 3561import { BusinessError } from '@kit.BasicServicesKit'; 3562 3563// 设置播放参数,开始播放 3564let playItem: avSession.AVQueueItem = { 3565 itemId: 0, 3566 description: { 3567 assetId: '12345', 3568 mediaType: 'AUDIO', 3569 mediaUri: 'http://resource1_address', 3570 mediaSize: 12345, 3571 startPosition: 0, 3572 duration: 0, 3573 artist: 'mysong', 3574 albumTitle: 'song1_title', 3575 albumCoverUri: "http://resource1_album_address", 3576 lyricUri: "http://resource1_lyric_address", 3577 appName: 'MyMusic' 3578 } 3579}; 3580 3581// 启动播放 3582aVCastController.start(playItem, (err: BusinessError) => { 3583 if (err) { 3584 console.error(`start BusinessError: code: ${err.code}, message: ${err.message}`); 3585 } else { 3586 console.info('start successfully'); 3587 } 3588}); 3589``` 3590 3591### start<sup>10+</sup> 3592 3593start(item: AVQueueItem): Promise\<void> 3594 3595启动播放某个媒体资源。结果通过Promise异步回调方式返回。 3596 3597 3598**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3599 3600**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3601 3602**参数:** 3603 3604| 参数名 | 类型 | 必填 | 说明 | 3605| ------- | ------------------------------------- | ---- | ------------------------------ | 3606| item | [AVQueueItem](#avqueueitem10) | 是 | 播放列表中单项的相关属性。 | 3607 3608**返回值:** 3609 3610| 类型 | 说明 | 3611| -------------- | ----------------------------- | 3612| Promise\<void> | Promise对象。当命令发送成功,无返回结果,否则返回错误对象。 | 3613 3614**错误码:** 3615 3616以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3617 3618| 错误码ID | 错误信息 | 3619| -------- | ---------------------------------------- | 3620| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 3621| 6600101 | Session service exception. | 3622| 6600109 | The remote connection is not established. | 3623 3624 3625**示例:** 3626 3627```ts 3628import { BusinessError } from '@kit.BasicServicesKit'; 3629 3630// 设置播放参数,开始播放 3631let playItem: avSession.AVQueueItem = { 3632 itemId: 0, 3633 description: { 3634 assetId: '12345', 3635 mediaType: 'AUDIO', 3636 mediaUri: 'http://resource1_address', 3637 mediaSize: 12345, 3638 startPosition: 0, 3639 duration: 0, 3640 artist: 'mysong', 3641 albumTitle: 'song1_title', 3642 albumCoverUri: "http://resource1_album_address", 3643 lyricUri: "http://resource1_lyric_address", 3644 appName: 'MyMusic' 3645 } 3646}; 3647// 启动播放 3648aVCastController.start(playItem).then(() => { 3649 console.info('start successfully'); 3650}).catch((err: BusinessError) => { 3651 console.error(`start BusinessError: code: ${err.code}, message: ${err.message}`); 3652}); 3653``` 3654 3655### getCurrentItem<sup>10+</sup> 3656 3657getCurrentItem(callback: AsyncCallback\<AVQueueItem>): void 3658 3659获取当前投播的资源信息。结果通过callback异步回调方式返回。 3660 3661**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3662 3663**参数:** 3664 3665| 参数名 | 类型 | 必填 | 说明 | 3666| -------- | ------------------------------------- | ---- | ------------------------------------- | 3667| callback | AsyncCallback\<[AVQueueItem](#avqueueitem10)> | 是 | 回调函数。当命令发送成功,err为undefined,否则返回错误对象。 | 3668 3669**错误码:** 3670 3671以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3672 3673| 错误码ID | 错误信息 | 3674| -------- | ---------------------------------------- | 3675| 6600101 | Session service exception. | 3676 3677**示例:** 3678 3679```ts 3680import { BusinessError } from '@kit.BasicServicesKit'; 3681 3682aVCastController.getCurrentItem((err: BusinessError, value: avSession.AVQueueItem) => { 3683 if (err) { 3684 console.error(`getCurrentItem BusinessError: code: ${err.code}, message: ${err.message}`); 3685 } else { 3686 console.info('getCurrentItem successfully'); 3687 } 3688}); 3689``` 3690 3691### getCurrentItem<sup>10+</sup> 3692 3693getCurrentItem(): Promise\<AVQueueItem> 3694 3695获取当前投播的资源信息。结果通过Promise异步回调方式返回。 3696 3697**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3698 3699**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3700 3701**返回值:** 3702 3703| 类型 | 说明 | 3704| -------------- | ----------------------------- | 3705| Promise\<[AVQueueItem](#avqueueitem10)> | Promise对象,返回当前的播放资源,否则返回错误对象。 | 3706 3707**错误码:** 3708 3709以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3710 3711| 错误码ID | 错误信息 | 3712| -------- | ---------------------------------------- | 3713| 6600101 | Session service exception. | 3714 3715**示例:** 3716 3717```ts 3718import { BusinessError } from '@kit.BasicServicesKit'; 3719 3720aVCastController.getCurrentItem().then((value: avSession.AVQueueItem) => { 3721 console.info('getCurrentItem successfully'); 3722}).catch((err: BusinessError) => { 3723 console.error(`getCurrentItem BusinessError: code: ${err.code}, message: ${err.message}`); 3724}); 3725``` 3726 3727### getValidCommands<sup>11+</sup> 3728 3729getValidCommands(callback: AsyncCallback<Array\<AVCastControlCommandType>>): void 3730 3731获取当前支持的命令。结果通过callback异步回调方式返回。 3732 3733**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3734 3735**参数:** 3736 3737| 参数名 | 类型 | 必填 | 说明 | 3738| -------- | ------------------------------------- | ---- | ------------------------------------- | 3739| callback | Array<[AVCastControlCommandType](#avcastcontrolcommandtype10)> | 是 | 回调函数。返回当前支持的命令。 | 3740 3741**错误码:** 3742 3743以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3744 3745| 错误码ID | 错误信息 | 3746| -------- | ---------------------------------------- | 3747| 6600101 | Session service exception. | 3748 3749**示例:** 3750 3751```ts 3752import { BusinessError } from '@kit.BasicServicesKit'; 3753 3754aVCastController.getValidCommands((err: BusinessError, state: avSession.AVCastControlCommandType) => { 3755 if (err) { 3756 console.error(`getValidCommands BusinessError: code: ${err.code}, message: ${err.message}`); 3757 } else { 3758 console.info('getValidCommands successfully'); 3759 } 3760}); 3761``` 3762 3763### getValidCommands<sup>11+</sup> 3764 3765getValidCommands(): Promise<Array\<AVCastControlCommandType>> 3766 3767获取当前支持的命令。结果通过Promise异步回调方式返回。 3768 3769**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3770 3771**返回值:** 3772 3773| 类型 | 说明 | 3774| -------------- | ----------------------------- | 3775| Promise<Array\<[AVCastControlCommandType](#avcastcontrolcommandtype10)>> | Promise对象,返回当前支持的命令。 | 3776 3777**错误码:** 3778 3779以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3780 3781| 错误码ID | 错误信息 | 3782| -------- | ---------------------------------------- | 3783| 6600101 | Session service exception. | 3784 3785**示例:** 3786 3787```ts 3788import { BusinessError } from '@kit.BasicServicesKit'; 3789 3790aVCastController.getValidCommands().then((state: avSession.AVCastControlCommandType) => { 3791 console.info('getValidCommands successfully'); 3792}).catch((err: BusinessError) => { 3793 console.error(`getValidCommands BusinessError: code: ${err.code}, message: ${err.message}`); 3794}); 3795``` 3796 3797### processMediaKeyResponse<sup>12+</sup> 3798 3799processMediaKeyResponse(assetId: string, response: Uint8Array): Promise\<void> 3800 3801在线DRM资源投播时,处理许可证响应。结果通过Promise异步回调方式返回。 3802 3803**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3804 3805**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3806 3807**参数:** 3808 3809| 参数名 | 类型 | 必填 | 说明 | 3810| -------- | ------------------------------------- | ---- | ------------------------------------- | 3811| assetId | string | 是 | 媒体ID。 | 3812| response | Uint8Array | 是 | 许可证响应。 | 3813 3814**返回值:** 3815 3816| 类型 | 说明 | 3817| -------------- | ----------------------------- | 3818| Promise\<void> | Promise对象,当处理许可证响应成功,无返回结果,否则返回错误对象。 | 3819 3820**错误码:** 3821 3822以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3823 3824| 错误码ID | 错误信息 | 3825| -------- | ---------------------------------------- | 3826| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 3827| 6600101 | Session service exception. | 3828 3829**示例:** 3830 3831```ts 3832let keyRequestCallback: avSession.KeyRequestCallback = async(assetId: string, requestData: Uint8Array) => { 3833 // 根据assetId获取对应的DRM url 3834 let drmUrl = 'http://license.xxx.xxx.com:8080/drmproxy/getLicense'; 3835 // 从服务器获取许可证,需要开发者根据实际情况进行赋值 3836 let licenseResponseData: Uint8Array = new Uint8Array(); 3837 console.info(`Succeeded in get license by ${drmUrl}.`); 3838 aVCastController.processMediaKeyResponse(assetId, licenseResponseData); 3839} 3840``` 3841 3842### release<sup>11+</sup> 3843 3844release(callback: AsyncCallback\<void>): void 3845 3846销毁当前controller,结果通过callback异步回调方式返回。 3847 3848**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3849 3850**参数:** 3851 3852| 参数名 | 类型 | 必填 | 说明 | 3853| -------- | -------------------------- | ---- | ------------------------------------------------------------ | 3854| callback | AsyncCallback\<void> | 是 | 回调函数。当命令执行成功,err为undefined,否则返回错误对象。 | 3855 3856**错误码:** 3857 3858以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3859 3860| 错误码ID | 错误信息 | 3861| -------- | -------------------------- | 3862| 6600101 | Session service exception. | 3863 3864**示例:** 3865 3866```ts 3867import { BusinessError } from '@kit.BasicServicesKit'; 3868 3869aVCastController.release((err: BusinessError) => { 3870 if (err) { 3871 console.error(`release BusinessError: code: ${err.code}, message: ${err.message}`); 3872 } else { 3873 console.info('release successfully'); 3874 } 3875}); 3876``` 3877 3878### release<sup>11+</sup> 3879 3880release(): Promise\<void> 3881 3882销毁当前controller。结果通过Promise异步回调方式返回。 3883 3884**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3885 3886**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3887 3888**返回值:** 3889 3890| 类型 | 说明 | 3891| -------------- | ----------------------------- | 3892| Promise\<void> | Promise对象,controller销毁成功,无结果返回,否则返回错误对象。 | 3893 3894**错误码:** 3895 3896以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3897 3898| 错误码ID | 错误信息 | 3899| -------- | ------------------------------ | 3900| 6600101 | Session service exception. | 3901 3902**示例:** 3903 3904```ts 3905import { BusinessError } from '@kit.BasicServicesKit'; 3906 3907aVCastController.release().then(() => { 3908 console.info('release successfully'); 3909}).catch((err: BusinessError) => { 3910 console.error(`release BusinessError: code: ${err.code}, message: ${err.message}`); 3911}); 3912 3913``` 3914 3915### on('playbackStateChange')<sup>10+</sup> 3916 3917on(type: 'playbackStateChange', filter: Array\<keyof AVPlaybackState> | 'all', callback: (state: AVPlaybackState) => void): void 3918 3919设置播放状态变化的监听事件。 3920 3921**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3922 3923**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3924 3925**参数:** 3926 3927| 参数名 | 类型 | 必填 | 说明 | 3928| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 3929| type | string | 是 | 事件回调类型,支持事件`'playbackStateChange'`:当播放状态变化时,触发该事件。 | 3930| filter | Array\<keyof [AVPlaybackState](#avplaybackstate10)\> | 'all' | 是 | 'all' 表示关注播放状态所有字段变化;Array<keyof [AVPlaybackState](#avplaybackstate10)\> 表示关注Array中的字段变化。 | 3931| callback | (state: [AVPlaybackState](#avplaybackstate10)) => void | 是 | 回调函数,参数state是变化后的播放状态。 | 3932 3933**错误码:** 3934 3935以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3936 3937| 错误码ID | 错误信息 | 3938| -------- | ------------------------------ | 3939| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 3940| 6600101 | Session service exception. | 3941 3942**示例:** 3943 3944```ts 3945aVCastController.on('playbackStateChange', 'all', (playbackState: avSession.AVPlaybackState) => { 3946 console.info(`on playbackStateChange state : ${playbackState.state}`); 3947}); 3948 3949let playbackFilter: Array<keyof avSession.AVPlaybackState> = ['state', 'speed', 'loopMode']; 3950aVCastController.on('playbackStateChange', playbackFilter, (playbackState: avSession.AVPlaybackState) => { 3951 console.info(`on playbackStateChange state : ${playbackState.state}`); 3952}); 3953``` 3954 3955### off('playbackStateChange')<sup>10+</sup> 3956 3957off(type: 'playbackStateChange', callback?: (state: AVPlaybackState) => void): void 3958 3959媒体控制器取消监听播放状态变化的事件。 3960 3961**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3962 3963**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3964 3965**参数:** 3966 3967| 参数名 | 类型 | 必填 | 说明 | 3968| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- | 3969| type | string | 是 | 取消对应的监听事件,支持事件`'playbackStateChange'`。 | 3970| callback | (state: [AVPlaybackState](#avplaybackstate10)) => void | 否 | 回调函数,参数state是变化后的播放状态。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 3971 3972**错误码:** 3973 3974以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 3975 3976| 错误码ID | 错误信息 | 3977| -------- | ---------------- | 3978| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 3979| 6600101 | Session service exception. | 3980 3981**示例:** 3982 3983```ts 3984aVCastController.off('playbackStateChange'); 3985``` 3986 3987### on('mediaItemChange')<sup>10+</sup> 3988 3989on(type: 'mediaItemChange', callback: Callback\<AVQueueItem>): void 3990 3991设置投播当前播放媒体内容的监听事件。 3992 3993**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3994 3995**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 3996 3997**参数:** 3998 3999| 参数名 | 类型 | 必填 | 说明 | 4000| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 4001| type | string | 是 | 事件回调类型,支持事件`'mediaItemChange'`:当播放的媒体内容变化时,触发该事件。 | 4002| callback | (callback: [AVQueueItem](#avqueueitem10)) => void | 是 | 回调函数,参数AVQueueItem是当前正在播放的媒体内容。 | 4003 4004**错误码:** 4005 4006以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4007 4008| 错误码ID | 错误信息 | 4009| -------- | ------------------------------ | 4010| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4011| 6600101 | Session service exception. | 4012 4013**示例:** 4014 4015```ts 4016aVCastController.on('mediaItemChange', (item: avSession.AVQueueItem) => { 4017 console.info(`on mediaItemChange state : ${item.itemId}`); 4018}); 4019``` 4020 4021### off('mediaItemChange')<sup>10+</sup> 4022 4023off(type: 'mediaItemChange'): void 4024 4025取消设置投播当前播放媒体内容的监听事件。 4026 4027**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4028 4029**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4030 4031**参数:** 4032 4033| 参数名 | 类型 | 必填 | 说明 | 4034| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- | 4035| type | string | 是 | 取消对应的监听事件,支持事件`'mediaItemChange'`。 | 4036 4037**错误码:** 4038 4039以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4040 4041| 错误码ID | 错误信息 | 4042| -------- | ---------------- | 4043| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4044| 6600101 | Session service exception. | 4045 4046**示例:** 4047 4048```ts 4049aVCastController.off('mediaItemChange'); 4050``` 4051 4052### on('playNext')<sup>10+</sup> 4053 4054on(type: 'playNext', callback: Callback\<void>): void 4055 4056设置播放下一首资源的监听事件。 4057 4058**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4059 4060**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4061 4062**参数:** 4063 4064| 参数名 | 类型 | 必填 | 说明 | 4065| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 4066| type | string | 是 | 事件回调类型,支持事件`'playNext'`:当播放下一首状态变化时,触发该事件。 | 4067| callback | Callback\<void\> | 是 | 回调函数 | 4068 4069**错误码:** 4070 4071以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4072 4073| 错误码ID | 错误信息 | 4074| -------- | ------------------------------ | 4075| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4076| 6600101 | Session service exception. | 4077 4078**示例:** 4079 4080```ts 4081aVCastController.on('playNext', () => { 4082 console.info('on playNext'); 4083}); 4084``` 4085 4086### off('playNext')<sup>10+</sup> 4087 4088off(type: 'playNext'): void 4089 4090取消设置播放下一首资源的监听事件。 4091 4092**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4093 4094**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4095 4096**参数:** 4097 4098| 参数名 | 类型 | 必填 | 说明 | 4099| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- | 4100| type | string | 是 | 取消对应的监听事件,支持事件`'playNext'`。 | 4101 4102**错误码:** 4103 4104以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4105 4106| 错误码ID | 错误信息 | 4107| -------- | ---------------- | 4108| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4109| 6600101 | Session service exception. | 4110 4111**示例:** 4112 4113```ts 4114aVCastController.off('playNext'); 4115``` 4116 4117### on('playPrevious')<sup>10+</sup> 4118 4119on(type: 'playPrevious', callback: Callback\<void>): void 4120 4121设置播放上一首资源的监听事件。 4122 4123**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4124 4125**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4126 4127**参数:** 4128 4129| 参数名 | 类型 | 必填 | 说明 | 4130| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 4131| type | string | 是 | 事件回调类型,支持事件`'playPrevious'`:当播放上一首状态变化时,触发该事件。 | 4132| callback | Callback\<void\> | 是 | 回调函数 | 4133 4134**错误码:** 4135 4136以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4137 4138| 错误码ID | 错误信息 | 4139| -------- | ------------------------------ | 4140| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4141| 6600101 | Session service exception. | 4142 4143**示例:** 4144 4145```ts 4146aVCastController.on('playPrevious', () => { 4147 console.info('on playPrevious'); 4148}); 4149``` 4150 4151### off('playPrevious')<sup>10+</sup> 4152 4153off(type: 'playPrevious'): void 4154 4155取消设置播放上一首资源的监听事件。 4156 4157**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4158 4159**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4160 4161**参数:** 4162 4163| 参数名 | 类型 | 必填 | 说明 | 4164| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- | 4165| type | string | 是 | 取消对应的监听事件,支持事件`'playPrevious'`。 | 4166 4167**错误码:** 4168 4169以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4170 4171| 错误码ID | 错误信息 | 4172| -------- | ---------------- | 4173| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4174| 6600101 | Session service exception. | 4175 4176**示例:** 4177 4178```ts 4179aVCastController.off('playPrevious'); 4180``` 4181 4182### on('requestPlay')<sup>11+</sup> 4183 4184on(type: 'requestPlay', callback: Callback\<AVQueueItem>): void 4185 4186设置请求播放的监听事件。 4187 4188**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4189 4190**参数:** 4191 4192| 参数名 | 类型 | 必填 | 说明 | 4193| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 4194| type | string | 是 | 事件回调类型,支持事件`'requestPlay'`:当请求播放状态变化时,触发该事件。 | 4195| callback | (state: [AVQueueItem](#avqueueitem10)) => void | 是 | 回调函数,参数AVQueueItem是当前正在播放的媒体内容。当监听事件注册成功,err为undefined,否则返回错误对象。 | 4196 4197**错误码:** 4198 4199以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4200 4201| 错误码ID | 错误信息 | 4202| -------- | ------------------------------ | 4203| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4204| 6600101 | Session service exception. | 4205 4206**示例:** 4207 4208```ts 4209aVCastController.on('requestPlay', (item: avSession.AVQueueItem) => { 4210 console.info(`on requestPlay state : ${item.itemId}`); 4211}); 4212``` 4213 4214### off('requestPlay')<sup>11+</sup> 4215 4216off(type: 'requestPlay', callback?: Callback\<AVQueueItem>): void 4217 4218取消设置请求播放的监听事件。 4219 4220**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4221 4222**参数:** 4223 4224| 参数名 | 类型 | 必填 | 说明 | 4225| -------- | ------------------------------------------------------------| ---- | ----------------------------------------------------- | 4226| type | string | 是 | 取消对应的监听事件,支持事件`'requestPlay'`。 | 4227| callback | (state: [AVQueueItem](#avqueueitem10)) => void | 否 | 回调函数,参数AVQueueItem是当前正在播放的媒体内容。当监听事件取消成功,err为undefined,否则返回错误对象。该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。| 4228 4229**错误码:** 4230 4231以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4232 4233| 错误码ID | 错误信息 | 4234| -------- | ---------------- | 4235| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4236| 6600101 | Session service exception. | 4237 4238**示例:** 4239 4240```ts 4241aVCastController.off('requestPlay'); 4242``` 4243 4244### on('endOfStream')<sup>11+</sup> 4245 4246on(type: 'endOfStream', callback: Callback\<void>): void 4247 4248设置播放结束的监听事件。 4249 4250**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4251 4252**参数:** 4253 4254| 参数名 | 类型 | 必填 | 说明 | 4255| -------- | ------------------------------------------------------------| ---- | ------------------------------------------------------------ | 4256| type | string | 是 | 事件回调类型,支持事件`'endOfStream'`:当资源播放结束时,触发该事件。 | 4257| callback | Callback\<void\> | 是 | 回调函数。当监听事件注册成功,err为undefined,否则返回错误对象。 | 4258 4259**错误码:** 4260 4261以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4262 4263| 错误码ID | 错误信息 | 4264| -------- | ------------------------------ | 4265| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4266| 6600101 | Session service exception. | 4267 4268**示例:** 4269 4270```ts 4271aVCastController.on('endOfStream', () => { 4272 console.info('on endOfStream'); 4273}); 4274``` 4275 4276### off('endOfStream')<sup>11+</sup> 4277 4278off(type: 'endOfStream', callback?: Callback\<void>): void 4279 4280取消设置播放结束的监听事件。 4281 4282**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4283 4284**参数:** 4285 4286| 参数名 | 类型 | 必填 | 说明 | 4287| -------- | ------------------------------------------------------------| ---- | ----------------------------------------------------- | 4288| type | string | 是 | 取消对应的监听事件,支持事件`'endOfStream'`。 | 4289| callback | Callback\<void\> | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 4290 4291**错误码:** 4292 4293以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4294 4295| 错误码ID | 错误信息 | 4296| -------- | ---------------- | 4297| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4298| 6600101 | Session service exception. | 4299 4300**示例:** 4301 4302```ts 4303aVCastController.off('endOfStream'); 4304``` 4305 4306### on('seekDone')<sup>10+</sup> 4307 4308on(type: 'seekDone', callback: Callback\<number>): void 4309 4310设置seek结束的监听事件。 4311 4312**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4313 4314**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4315 4316**参数:** 4317 4318| 参数名 | 类型 | 必填 | 说明 | 4319| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 4320| type | string | 是 | 事件回调类型,支持事件`'seekDone'`:当seek结束时,触发该事件。 | 4321| callback | Callback\<number\> | 是 | 回调函数,返回seek后播放的位置 | 4322 4323**错误码:** 4324 4325以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4326 4327| 错误码ID | 错误信息 | 4328| -------- | ------------------------------ | 4329| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4330| 6600101 | Session service exception. | 4331 4332**示例:** 4333 4334```ts 4335aVCastController.on('seekDone', (pos: number) => { 4336 console.info(`on seekDone pos:${pos} `); 4337}); 4338``` 4339 4340### off('seekDone')<sup>10+</sup> 4341 4342off(type: 'seekDone'): void 4343 4344取消设置seek结束的监听事件。 4345 4346**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4347 4348**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4349 4350**参数:** 4351 4352| 参数名 | 类型 | 必填 | 说明 | 4353| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- | 4354| type | string | 是 | 取消对应的监听事件,支持事件`'seekDone'`。 | 4355 4356**错误码:** 4357 4358以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4359 4360| 错误码ID | 错误信息 | 4361| -------- | ---------------- | 4362| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4363| 6600101 | Session service exception. | 4364 4365**示例:** 4366 4367```ts 4368aVCastController.off('seekDone'); 4369``` 4370 4371### on('validCommandChange')<sup>11+</sup> 4372 4373on(type: 'validCommandChange', callback: Callback\<Array\<AVCastControlCommandType>>) 4374 4375会话支持的有效命令变化监听事件。 4376 4377**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4378 4379**参数:** 4380 4381| 参数名 | 类型 | 必填 | 说明 | 4382| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 4383| type | string | 是 | 事件回调类型,支持事件`'validCommandChange'`:当检测到会话的合法命令发生改变时,触发该事件。 | 4384| callback | Callback<Array<[AVCastControlCommandType](#avcastcontrolcommandtype10)\>\> | 是 | 回调函数。参数commands是有效命令的集合。 | 4385 4386**错误码:** 4387 4388以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4389 4390| 错误码ID | 错误信息 | 4391| -------- | ------------------------------ | 4392| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4393| 6600101 | Session service exception. | 4394| 6600103 | The session controller does not exist. | 4395 4396**示例:** 4397 4398```ts 4399aVCastController.on('validCommandChange', (validCommands: avSession.AVCastControlCommandType[]) => { 4400 console.info(`validCommandChange : SUCCESS : size : ${validCommands.length}`); 4401 console.info(`validCommandChange : SUCCESS : validCommands : ${validCommands.values()}`); 4402}); 4403``` 4404 4405### off('validCommandChange')<sup>11+</sup> 4406 4407off(type: 'validCommandChange', callback?: Callback\<Array\<AVCastControlCommandType>>) 4408 4409媒体控制器取消监听会话有效命令变化的事件。 4410 4411**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4412 4413**参数:** 4414 4415| 参数名 | 类型 | 必填 | 说明 | 4416| -------- | ------------------------------------------------------------ | ---- | -------------------------------------------------------- | 4417| type | string | 是 | 取消对应的监听事件,支持事件`'validCommandChange'`。 | 4418| callback | Callback<Array<[AVCastControlCommandType](#avcastcontrolcommandtype10)\>\> | 否 | 回调函数。参数commands是有效命令的集合。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 4419 4420**错误码:** 4421 4422以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4423 4424| 错误码ID | 错误信息 | 4425| -------- | ---------------- | 4426| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4427| 6600101 | Session service exception. | 4428| 6600103 | The session controller does not exist. | 4429 4430**示例:** 4431 4432```ts 4433aVCastController.off('validCommandChange'); 4434``` 4435 4436### on('error')<sup>10+</sup> 4437 4438on(type: 'error', callback: ErrorCallback): void 4439 4440监听远端播放器的错误事件,该事件仅用于错误提示,不需要用户停止播控动作。 4441 4442**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4443 4444**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4445 4446**参数:** 4447 4448| 参数名 | 类型 | 必填 | 说明 | 4449| -------- | -------- | ---- | ------------------------------------------------------------ | 4450| type | string | 是 | 错误事件回调类型,支持的事件:'error',用户操作和系统都会触发此事件。 | 4451| callback | ErrorCallback | 是 | 错误事件回调方法:远端播放过程中发生的错误,会提供错误码ID和错误信息。 | 4452 4453**错误码:** 4454 4455以下错误码的详细介绍请参见[媒体服务错误码](../apis-media-kit/errorcode-media.md)以及[媒体会话管理错误码](errorcode-avsession.md)。 4456 4457| 错误码ID | 错误信息 | 4458| -------- | --------------------- | 4459| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4460| 5400101 | No memory. | 4461| 5400102 | Operation not allowed. | 4462| 5400103 | I/O error. | 4463| 5400104 | Time out. | 4464| 5400105 | Service died. | 4465| 5400106 | Unsupport format. | 4466| 6600101 | Session service exception. | 4467 4468**示例:** 4469 4470```ts 4471import { BusinessError } from '@kit.BasicServicesKit'; 4472 4473aVCastController.on('error', (error: BusinessError) => { 4474 console.info(`error happened, error code: ${error.code}, error message : ${error.message}.`) 4475}) 4476``` 4477 4478### off('error')<sup>10+</sup> 4479 4480off(type: 'error'): void 4481 4482取消监听播放的错误事件。 4483 4484**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4485 4486**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4487 4488**参数:** 4489 4490| 参数名 | 类型 | 必填 | 说明 | 4491| ------ | ------ | ---- | ----------------------------------------- | 4492| type | string | 是 | 错误事件回调类型,取消注册的事件:'error' | 4493 4494**错误码:** 4495 4496以下错误码的详细介绍请参见[媒体服务错误码](../apis-media-kit/errorcode-media.md)以及[媒体会话管理错误码](errorcode-avsession.md)。 4497 4498| 错误码ID | 错误信息 | 4499| -------- | --------------------- | 4500| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4501| 5400101 | No memory. | 4502| 5400102 | Operation not allowed. | 4503| 5400103 | I/O error. | 4504| 5400104 | Time out. | 4505| 5400105 | Service died. | 4506| 5400106 | Unsupport format. | 4507| 6600101 | Session service exception. | 4508 4509**示例:** 4510 4511```ts 4512aVCastController.off('error') 4513``` 4514 4515### on('keyRequest')<sup>12+</sup> 4516 4517on(type: 'keyRequest', callback: KeyRequestCallback): void 4518 4519在线DRM资源投播时,设置许可证请求的事件监听。 4520 4521**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4522 4523**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4524 4525**参数:** 4526 4527| 参数名 | 类型 | 必填 | 说明 | 4528| ------ | ------ | ---- | ----------------------------------------- | 4529| type | string | 是 | 事件回调类型,支持事件`'keyRequest'`:当DRM资源播放需要许可证时,触发该事件。 | 4530| callback | [KeyRequestCallback](#keyrequestcallback12) | 是 | 回调函数,媒体资源及许可证请求数据。| 4531 4532 4533**错误码:** 4534 4535以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4536 4537| 错误码ID | 错误信息 | 4538| -------- | ---------------- | 4539| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4540| 6600101 | Session service exception. | 4541 4542**示例:** 4543 4544```ts 4545let keyRequestCallback: avSession.KeyRequestCallback = async(assetId: string, requestData: Uint8Array) => { 4546 console.info(`Succeeded in keyRequestCallback. assetId: ${assetId}, requestData: ${requestData}`); 4547} 4548aVCastController.on('keyRequest', keyRequestCallback); 4549``` 4550### off('keyRequest')<sup>12+</sup> 4551 4552off(type: 'keyRequest', callback?: KeyRequestCallback): void 4553 4554取消监听许可证请求的事件。 4555 4556**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4557 4558**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4559 4560**参数:** 4561 4562| 参数名 | 类型 | 必填 | 说明 | 4563| ------ | ------ | ---- | ----------------------------------------- | 4564| type | string | 是 | 取消对应的监听事件,支持的事件是`'keyRequest'`。 | 4565| callback | [KeyRequestCallback](#keyrequestcallback12) | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 4566 4567**错误码:** 4568 4569以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 4570 4571| 错误码ID | 错误信息 | 4572| -------- | ---------------- | 4573| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 4574| 6600101 | Session service exception. | 4575 4576**示例:** 4577 4578```ts 4579aVCastController.off('keyRequest'); 4580``` 4581 4582### on('castControlGenericError')<sup>13+</sup> 4583 4584on(type: 'castControlGenericError', callback: ErrorCallback): void 4585 4586监听投播通用错误事件。 4587 4588**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 4589 4590**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4591 4592**参数:** 4593 4594| 参数名 | 类型 | 必填 | 说明 | 4595| -------- | -------- | ---- | ------------------------------------------------------------ | 4596| type | string | 是 | 错误事件回调类型,支持的事件:'castControlGenericError'。 | 4597| callback | ErrorCallback | 是 | 投播通用错误事件回调方法。 | 4598 4599**错误码:** 4600 4601| 错误码ID | 错误信息 | 4602| -------- | --------------------- | 4603| 401 | Parameter check failed. 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 4604| 6611000 | The error code for cast control is unspecified. | 4605| 6611001 | An unspecified error occurs in the remote player. | 4606| 6611002 | The playback position falls behind the live window. | 4607| 6611003 | The process of cast control times out. | 4608| 6611004 | The runtime check failed. | 4609| 6611100 | Cross-device data transmission is locked. | 4610| 6611101 | The specified seek mode is not supported. | 4611| 6611102 | The position to seek to is out of the range of the media asset or the specified seek mode is not supported. | 4612| 6611103 | The specified playback mode is not supported. | 4613| 6611104 | The specified playback speed is not supported. | 4614| 6611105 | The action failed because either the media source device or the media sink device has been revoked. | 4615| 6611106 | The parameter is invalid, for example, the url is illegal to play. | 4616| 6611107 | Allocation of memory failed. | 4617| 6611108 | Operation is not allowed. | 4618 4619**示例:** 4620 4621```ts 4622aVCastController.on('castControlGenericError', (error: BusinessError) => { 4623 console.info(`castControlGenericError happened, error code: ${error.code}, error message : ${error.message}.`) 4624}) 4625``` 4626 4627### off('castControlGenericError')<sup>13+</sup> 4628 4629off(type: 'castControlGenericError', callback?: ErrorCallback): void 4630 4631取消监听投播通用的错误事件。 4632 4633**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 4634 4635**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4636 4637**参数:** 4638 4639| 参数名 | 类型 | 必填 | 说明 | 4640| -------- | -------- | ---- | ------------------------------------------------------------ | 4641| type | string | 是 | 取消对应的监听事件,支持的事件是'castControlGenericError'。 | 4642| callback | ErrorCallback | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 4643 4644**错误码:** 4645 4646| 错误码ID | 错误信息 | 4647| -------- | --------------------- | 4648| 401 | Parameter check failed. 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 4649 4650**示例:** 4651 4652```ts 4653aVCastController.off('castControlGenericError'); 4654``` 4655 4656### on('castControlIoError')<sup>13+</sup> 4657 4658on(type: 'castControlIoError', callback: ErrorCallback): void 4659 4660监听投播输入/输出的错误事件。 4661 4662**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 4663 4664**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4665 4666**参数:** 4667 4668| 参数名 | 类型 | 必填 | 说明 | 4669| -------- | -------- | ---- | ------------------------------------------------------------ | 4670| type | string | 是 | 错误事件回调类型,支持的事件:'castControlIoError'。 | 4671| callback | ErrorCallback | 是 | 投播输入/输出的错误事件回调方法。 | 4672 4673**错误码:** 4674 4675| 错误码ID | 错误信息 | 4676| -------- | --------------------- | 4677| 401 | Parameter check failed. 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 4678| 6612000 | An unspecified input/output error occurs. | 4679| 6612001 | Network connection failure. | 4680| 6612002 | Network timeout. | 4681| 6612003 | Invalid "Content-Type" HTTP header. | 4682| 6612004 | The HTTP server returns an unexpected HTTP response status code. | 4683| 6612005 | The file does not exist. | 4684| 6612006 | No permission is granted to perform the IO operation. | 4685| 6612007 | Access to cleartext HTTP traffic is not allowed by the app's network security configuration. | 4686| 6612008 | Reading data out of the data bound. | 4687| 6612100 | The media does not contain any contents that can be played. | 4688| 6612101 | The media cannot be read, for example, because of dust or scratches. | 4689| 6612102 | This resource is already in use. | 4690| 6612103 | The content using the validity interval has expired. | 4691| 6612104 | Using the requested content to play is not allowed. | 4692| 6612105 | The use of the allowed content cannot be verified. | 4693| 6612106 | The number of times this content has been used as requested has reached the maximum allowed number of uses. | 4694| 6612107 | An error occurs when sending packet from source device to sink device. | 4695 4696**示例:** 4697 4698```ts 4699aVCastController.on('castControlIoError', (error: BusinessError) => { 4700 console.info(`castControlIoError happened, error code: ${error.code}, error message : ${error.message}.`) 4701}) 4702``` 4703 4704### off('castControlIoError')<sup>13+</sup> 4705 4706off(type: 'castControlIoError', callback?: ErrorCallback): void 4707 4708取消监听投播输入/输出的错误事件。 4709 4710**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 4711 4712**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4713 4714**参数:** 4715 4716| 参数名 | 类型 | 必填 | 说明 | 4717| -------- | -------- | ---- | ------------------------------------------------------------ | 4718| type | string | 是 | 取消对应的监听事件,支持的事件是'castControlIoError'。 | 4719| callback | ErrorCallback | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 4720 4721**错误码:** 4722 4723| 错误码ID | 错误信息 | 4724| -------- | --------------------- | 4725| 401 | Parameter check failed. 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 4726 4727**示例:** 4728 4729```ts 4730aVCastController.off('castControlIoError'); 4731``` 4732 4733### on('castControlParsingError')<sup>13+</sup> 4734 4735on(type: 'castControlParsingError', callback: ErrorCallback): void 4736 4737监听投播解析的错误事件。 4738 4739**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 4740 4741**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4742 4743**参数:** 4744 4745| 参数名 | 类型 | 必填 | 说明 | 4746| -------- | -------- | ---- | ------------------------------------------------------------ | 4747| type | string | 是 | 错误事件回调类型,支持的事件:'castControlParsingError'。 | 4748| callback | ErrorCallback | 是 | 投播解析的错误事件回调方法。 | 4749 4750**错误码:** 4751 4752| 错误码ID | 错误信息 | 4753| -------- | --------------------- | 4754| 401 | Parameter check failed. 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 4755| 6613000 | Unspecified error related to content parsing. | 4756| 6613001 | Parsing error associated with media container format bit streams. | 4757| 6613002 | Parsing error associated with the media manifest. | 4758| 6613003 | An error occurs when attempting to extract a file with an unsupported media container format or an unsupported media container feature. | 4759| 6613004 | Unsupported feature in the media manifest. | 4760 4761**示例:** 4762 4763```ts 4764aVCastController.on('castControlParsingError', (error: BusinessError) => { 4765 console.info(`castControlParsingError happened, error code: ${error.code}, error message : ${error.message}.`) 4766}) 4767``` 4768 4769### off('castControlParsingError')<sup>13+</sup> 4770 4771off(type: 'castControlParsingError', callback?: ErrorCallback): void 4772 4773取消监听投播解析的错误事件。 4774 4775**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 4776 4777**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4778 4779**参数:** 4780 4781| 参数名 | 类型 | 必填 | 说明 | 4782| -------- | -------- | ---- | ------------------------------------------------------------ | 4783| type | string | 是 | 取消对应的监听事件,支持的事件是'castControlParsingError'。 | 4784| callback | ErrorCallback | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 4785 4786**错误码:** 4787 4788| 错误码ID | 错误信息 | 4789| -------- | --------------------- | 4790| 401 | Parameter check failed. 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 4791 4792**示例:** 4793 4794```ts 4795aVCastController.off('castControlParsingError'); 4796``` 4797 4798### on('castControlDecodingError')<sup>13+</sup> 4799 4800on(type: 'castControlDecodingError', callback: ErrorCallback): void 4801 4802监听投播解码的错误事件。 4803 4804**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 4805 4806**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4807 4808**参数:** 4809 4810| 参数名 | 类型 | 必填 | 说明 | 4811| -------- | -------- | ---- | ------------------------------------------------------------ | 4812| type | string | 是 | 错误事件回调类型,支持的事件:'castControlDecodingError'。 | 4813| callback | ErrorCallback | 是 | 投播解码的错误事件回调方法。 | 4814 4815**错误码:** 4816 4817| 错误码ID | 错误信息 | 4818| -------- | --------------------- | 4819| 401 | Parameter check failed. 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 4820| 6614000 | Unspecified decoding error. | 4821| 6614001 | Decoder initialization failed. | 4822| 6614002 | Decoder query failed. | 4823| 6614003 | Decoding the media samples failed. | 4824| 6614004 | The format of the content to decode exceeds the capabilities of the device. | 4825| 6614005 | The format of the content to decode is not supported. | 4826 4827**示例:** 4828 4829```ts 4830aVCastController.on('castControlDecodingError', (error: BusinessError) => { 4831 console.info(`castControlDecodingError happened, error code: ${error.code}, error message : ${error.message}.`) 4832}) 4833``` 4834### off('castControlDecodingError')<sup>13+</sup> 4835 4836off(type: 'castControlDecodingError', callback?: ErrorCallback): void 4837 4838取消监听投播解码的错误事件。 4839 4840**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 4841 4842**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4843 4844**参数:** 4845 4846| 参数名 | 类型 | 必填 | 说明 | 4847| -------- | -------- | ---- | ------------------------------------------------------------ | 4848| type | string | 是 | 取消对应的监听事件,支持的事件是'castControlDecodingError'。 | 4849| callback | ErrorCallback | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 4850 4851**错误码:** 4852 4853| 错误码ID | 错误信息 | 4854| -------- | --------------------- | 4855| 401 | Parameter check failed. 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 4856 4857**示例:** 4858 4859```ts 4860aVCastController.off('castControlDecodingError'); 4861``` 4862 4863### on('castControlAudioRendererError')<sup>13+</sup> 4864 4865on(type: 'castControlAudioRendererError', callback: ErrorCallback): void 4866 4867监听投播音频渲染器的错误事件。 4868 4869**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 4870 4871**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4872 4873**参数:** 4874 4875| 参数名 | 类型 | 必填 | 说明 | 4876| -------- | -------- | ---- | ------------------------------------------------------------ | 4877| type | string | 是 | 错误事件回调类型,支持的事件:'castControlAudioRendererError'。 | 4878| callback | ErrorCallback | 是 | 投播音频渲染器的错误事件回调方法。 | 4879 4880**错误码:** 4881 4882以下错误码的详细介绍请参见[媒体服务错误码](../apis-media-kit/errorcode-media.md)以及[媒体会话管理错误码](errorcode-avsession.md)。 4883 4884| 错误码ID | 错误信息 | 4885| -------- | --------------------- | 4886| 401 | Parameter check failed. 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 4887| 6615000 | Unspecified errors related to the audio renderer. | 4888| 6615001 | Initializing the audio renderer failed. | 4889| 6615002 | The audio renderer fails to write data. | 4890 4891**示例:** 4892 4893```ts 4894aVCastController.on('castControlAudioRendererError', (error: BusinessError) => { 4895 console.info(`castControlAudioRendererError happened, error code: ${error.code}, error message : ${error.message}.`) 4896}) 4897``` 4898### off('castControlAudioRendererError')<sup>13+</sup> 4899 4900off(type: 'castControlAudioRendererError', callback?: ErrorCallback): void 4901 4902取消监听投播音频渲染器的错误事件。 4903 4904**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 4905 4906**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4907 4908**参数:** 4909 4910| 参数名 | 类型 | 必填 | 说明 | 4911| -------- | -------- | ---- | ------------------------------------------------------------ | 4912| type | string | 是 | 取消对应的监听事件,支持的事件是'castControlAudioRendererError'。 | 4913| callback | ErrorCallback | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 4914 4915**错误码:** 4916 4917| 错误码ID | 错误信息 | 4918| -------- | --------------------- | 4919| 401 | Parameter check failed. 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.| 4920 4921**示例:** 4922 4923```ts 4924aVCastController.off('castControlAudioRendererError'); 4925``` 4926 4927### on('castControlDrmError')<sup>13+</sup> 4928 4929on(type: 'castControlDrmError', callback: ErrorCallback): void 4930 4931监听投播drm的错误事件。 4932 4933**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 4934 4935**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4936 4937**参数:** 4938 4939| 参数名 | 类型 | 必填 | 说明 | 4940| -------- | -------- | ---- | ------------------------------------------------------------ | 4941| type | string | 是 | 错误事件回调类型,支持的事件:'castControlDrmError'。 | 4942| callback | ErrorCallback | 是 | 投播drm的错误事件回调方法。 | 4943 4944**错误码:** 4945 4946| 错误码ID | 错误信息 | 4947| -------- | --------------------- | 4948| 401 | Parameter check failed. 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 4949| 6616000 | Unspecified error related to DRM. | 4950| 6616001 | The chosen DRM protection scheme is not supported by the device. | 4951| 6616002 | Device provisioning failed. | 4952| 6616003 | The DRM-protected content to play is incompatible. | 4953| 6616004 | Failed to obtain a license. | 4954| 6616005 | The operation is disallowed by the license policy. | 4955| 6616006 | An error occurs in the DRM system. | 4956| 6616007 | The device has revoked DRM privileges. | 4957| 6616008 | The DRM license being loaded into the open DRM session has expired. | 4958| 6616100 | An error occurs when the DRM processes the key response. | 4959 4960**示例:** 4961 4962```ts 4963aVCastController.on('castControlDrmError', (error: BusinessError) => { 4964 console.info(`castControlDrmError happened, error code: ${error.code}, error message : ${error.message}.`) 4965}) 4966``` 4967 4968### off('castControlDrmError')<sup>13+</sup> 4969 4970off(type: 'castControlDrmError', callback?: ErrorCallback): void 4971 4972取消监听投播drm的错误事件。 4973 4974**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 4975 4976**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 4977 4978**参数:** 4979 4980| 参数名 | 类型 | 必填 | 说明 | 4981| -------- | -------- | ---- | ------------------------------------------------------------ | 4982| type | string | 是 | 取消对应的监听事件,支持的事件是'castControlDrmError'。 | 4983| callback | ErrorCallback | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 4984 4985**错误码:** 4986 4987| 错误码ID | 错误信息 | 4988| -------- | --------------------- | 4989| 401 | Parameter check failed. 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 4990 4991**示例:** 4992 4993```ts 4994aVCastController.off('castControlDrmError'); 4995``` 4996 4997## KeyRequestCallback<sup>12+</sup> 4998type KeyRequestCallback = (assetId: string, requestData: Uint8Array) => void 4999 5000许可证请求事件的回调函数。 5001 5002**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5003 5004**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 5005 5006**参数:** 5007 5008| 参数名 | 类型 | 必填 | 说明 | 5009| ------ | ------ | ---- | ----------------------------------------- | 5010| assetId | string | 是 | 媒体ID。 | 5011| requestData | Uint8Array | 是 | 媒体许可证请求数据。 | 5012 5013**示例:** 5014<!--code_no_check--> 5015```ts 5016let keyRequestCallback: avSession.KeyRequestCallback = async(assetId: string, requestData: Uint8Array) => { 5017 console.info(`Succeeded in keyRequestCallback. assetId: ${assetId}, requestData: ${requestData}`); 5018} 5019``` 5020 5021## CastDisplayState<sup>12+</sup> 5022 5023投播显示设备状态的枚举。 5024 5025**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5026 5027**系统能力:** SystemCapability.Multimedia.AVSession.ExtendedDisplayCast 5028 5029| 名称 | 值 | 说明 | 5030| --------------------------- | ---- | ----------- | 5031| STATE_OFF | 1 | 设备断开,扩展屏不再显示内容。 | 5032| STATE_ON | 2 | 设备连接成功,扩展屏可用。 | 5033 5034 5035## CastDisplayInfo<sup>12+</sup> 5036 5037扩展屏投播显示设备相关属性。 5038 5039**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5040 5041**系统能力:** SystemCapability.Multimedia.AVSession.ExtendedDisplayCast 5042 5043| 名称 | 类型 | 只读 | 可选 | 说明 | 5044| --------------- |-------------------------| ---- | ---- |---------------------------------------------------------------------| 5045| id | number | 否 | 否 | 投播显示设备的ID,该参数应为整数。 | 5046| name | string | 否 | 否 | 投播显示设备的名称。 | 5047| state | [CastDisplayState](#castdisplaystate12) | 否 | 否 |投播显示设备状态。 | 5048| width | number | 否 | 否 | 投播显示设备的屏幕宽度,单位为px,该参数应为整数。 | 5049| height | number | 否 | 否 | 投播显示设备的屏幕高度,单位为px,该参数应为整数。 | 5050 5051## ConnectionState<sup>10+</sup> 5052 5053连接状态枚举。 5054 5055**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5056 5057**系统能力:** SystemCapability.Multimedia.AVSession.Core 5058 5059| 名称 | 值 | 说明 | 5060| --------------------------- | ---- | ----------- | 5061| STATE_CONNECTING | 0 | 设备连接中 | 5062| STATE_CONNECTED | 1 | 设备连接成功 | 5063| STATE_DISCONNECTED | 6 | 设备断开连接 | 5064 5065## AVMetadata<sup>10+</sup> 5066 5067媒体元数据的相关属性。 5068 5069**系统能力:** SystemCapability.Multimedia.AVSession.Core 5070 5071| 名称 | 类型 | 必填 | 说明 | 5072| --------------- |-------------------------| ---- |---------------------------------------------------------------------| 5073| assetId | string | 是 | 媒体ID。歌曲的唯一标识,由应用自定义。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5074| title | string | 否 | 标题。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5075| artist | string | 否 | 艺术家。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5076| author | string | 否 | 专辑作者。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5077| avQueueName<sup>12+</sup> | string | 否 | 歌单(歌曲列表)名称。 | 5078| avQueueId<sup>11+</sup> | string | 否 | 歌单(歌曲列表)唯一标识Id。 | 5079| avQueueImage<sup>11+</sup> | [image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7) | string | 否 | 歌单(歌曲列表)封面图,图片的像素数据或者图片路径地址(本地路径或网络路径)。<br>应用通过setAVMetadata设置图片数据,当设置的数据类型为PixelMap时,通过getAVMetadata获取的将为PixelMap。设置为url图片路径,获取的亦为url图片路径 | 5080| album | string | 否 | 专辑名称。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5081| writer | string | 否 | 词作者。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5082| composer | string | 否 | 作曲者。 | 5083| duration | number | 否 | 媒体时长,单位毫秒(ms)。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5084| mediaImage | [image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7) | string | 否 | 图片的像素数据或者图片路径地址(本地路径或网络路径)。<br>应用通过setAVMetadata设置图片数据,当设置的数据类型为PixelMap时,通过getAVMetadata获取的将为PixelMap。设置为url图片路径,获取的亦为url图片路径 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5085| publishDate | Date | 否 | 发行日期。 | 5086| subtitle | string | 否 | 子标题。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5087| description | string | 否 | 媒体描述。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5088| lyric | string | 否 | 媒体歌词内容。应用需将歌词内容拼接为一个字符串传入。<br>字符串长度需小于等于40960字节。<br>**说明:** 系统支持简单版的LRC格式(Simple LRC format)的歌词文本内容。当传入的歌词内容不规范(如出现重复的时间戳等),将导致解析失败以及在系统中显示异常。 | 5089| previousAssetId | string | 否 | 上一首媒体ID。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5090| nextAssetId | string | 否 | 下一首媒体ID。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5091| filter<sup>11+</sup> | number | 否 | 当前session支持的协议,默认为TYPE_CAST_PLUS_STREAM。具体取值参考[ProtocolType](#protocoltype11)。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5092| drmSchemes<sup>12+</sup> | Array\<string> | 否 | 当前session支持的DRM方案,取值为DRM方案uuid。| 5093| skipIntervals<sup>11+</sup> | [SkipIntervals](#skipintervals11) | 否 | 快进快退支持的时间间隔,默认为SECONDS_15,即15秒。 | 5094|displayTags<sup>11+</sup> | number | 否 | 媒体资源的金标类型,取值参考[DisplayTag](#displaytag11)。 | 5095 5096## AVMediaDescription<sup>10+</sup> 5097 5098播放列表媒体元数据的相关属性。 5099 5100**系统能力:** SystemCapability.Multimedia.AVSession.Core 5101 5102| 名称 | 类型 | 必填 | 说明 | 5103| ------------ | ----------------------- | ---- | ----------------------- | 5104| assetId | string | 是 | 播放列表媒体ID。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5105| title | string | 否 | 播放列表媒体标题。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5106| subtitle | string | 否 | 播放列表媒体子标题。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5107| description | string | 否 | 播放列表媒体描述的文本。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5108| mediaImage | image.PixelMap \| string | 否 | 播放列表媒体图片像素数据。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5109| extras | {[key: string]: Object} | 否 | 播放列表媒体额外字段。 | 5110| mediaUri | string | 否 | 播放列表媒体URI。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5111| mediaType | string | 否 | 播放列表媒体类型。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5112| mediaSize | number | 否 | 播放列表媒体的大小。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5113| albumTitle | string | 否 | 播放列表媒体专辑标题。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5114| albumCoverUri | string | 否 | 播放列表媒体专辑标题URI。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5115| lyricContent | string | 否 | 播放列表媒体歌词内容。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5116| lyricUri | string | 否 | 播放列表媒体歌词URI。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5117| artist | string | 否 | 播放列表媒体专辑作者。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5118| fdSrc | media.AVFileDescriptor | 否 | 播放列表媒体本地文件的句柄。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5119| dataSrc<sup>12+</sup> | media.AVDataSrcDescriptor | 否 | 播放列表数据源描述。当前版本暂不可用。 | 5120| drmScheme<sup>12+</sup> | string | 否 | 播放列表媒体支持的DRM方案,由uuid表示。 | 5121| duration | number | 否 | 播放列表媒体播放时长。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5122| startPosition | number | 否 | 播放列表媒体起始播放位置。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5123| creditsPosition | number | 否 | 播放列表媒体的片尾播放位置。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5124| appName | string | 否 | 播放列表提供的应用的名字。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5125|displayTags<sup>11+</sup> | number | 否 | 媒体资源的金标类型,取值参考[DisplayTag](#displaytag11)。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5126 5127## AVQueueItem<sup>10+</sup> 5128 5129播放列表中单项的相关属性。 5130 5131**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5132 5133**系统能力:** SystemCapability.Multimedia.AVSession.Core 5134 5135| 名称 | 类型 | 必填 | 说明 | 5136| ------------ | ------------------------------------------ | ---- | --------------------------- | 5137| itemId | number | 是 | 播放列表中单项的ID。 | 5138| description | [AVMediaDescription](#avmediadescription10) | 否 | 播放列表中单项的媒体元数据。 | 5139 5140## AVPlaybackState<sup>10+</sup> 5141 5142媒体播放状态的相关属性。 5143 5144**系统能力:** SystemCapability.Multimedia.AVSession.Core 5145 5146| 名称 | 类型 | 必填 | 说明 | 5147| ------------ | ------------------------------------- | ---- | ------- | 5148| state | [PlaybackState](#playbackstate10) | 否 | 播放状态<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5149| speed | number | 否 | 播放倍速<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5150| position | [PlaybackPosition](#playbackposition10) | 否 | 播放位置<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5151| bufferedTime | number | 否 | 缓冲时间<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5152| loopMode | [LoopMode](#loopmode10) | 否 | 循环模式<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5153| isFavorite | boolean | 否 | 是否收藏<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5154| activeItemId<sup>10+</sup> | number | 否 | 正在播放的媒体Id<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5155| volume<sup>10+</sup> | number | 否 | 正在播放的媒体音量<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5156| maxVolume<sup>11+</sup> | number | 否 | 最大音量<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5157| muted<sup>11+</sup> | boolean | 否 | 当前静音状态,true表示静音<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5158| duration<sup>11+</sup> | number | 否 | 当前媒体资源的时长 | 5159| videoWidth<sup>11+</sup> | number | 否 | 媒体资源的视频宽度,单位为像素(px)。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5160| videoHeight<sup>11+</sup> | number | 否 | 媒体资源的视频高度,单位为像素(px)。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5161| extras<sup>10+</sup> | {[key: string]: Object} | 否 | 自定义媒体数据<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5162 5163## PlaybackPosition<sup>10+</sup> 5164 5165媒体播放位置的相关属性。 5166 5167**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5168 5169**系统能力:** SystemCapability.Multimedia.AVSession.Core 5170 5171| 名称 | 类型 | 必填 | 说明 | 5172| ----------- | ------ | ---- | ------------------ | 5173| elapsedTime | number | 是 | 已用时间,单位毫秒(ms)。 | 5174| updateTime | number | 是 | 更新时间,单位毫秒(ms)。 | 5175 5176## CallMetadata<sup>11+</sup> 5177 5178通话会话元数据相关属性。 5179 5180**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5181 5182**系统能力:** SystemCapability.Multimedia.AVSession.Core 5183 5184| 名称 | 类型 | 必填 | 说明 | 5185| --------------- |-------------------------| ---- |---------------------------------------------------------------------| 5186| name | string | 否 | 来电人姓名(别名)。 | 5187| phoneNumber | string | 否 | 来电电话号码 | 5188| avatar | [image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7) | 否 | 来电人头像。 | 5189 5190## AVCallState<sup>11+</sup> 5191 5192通话状态相关属性。 5193 5194**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5195 5196**系统能力:** SystemCapability.Multimedia.AVSession.Core 5197 5198| 名称 | 类型 | 必填 | 说明 | 5199| --------------- |------------------------- | ---- |---------------------------------------------------------------------| 5200| state | [CallState](#callstate11) | 是 | 当前通话状态。 | 5201| muted | boolean | 是 | 通话mic是否静音。 <br>true:静音。 <br>false:不是静音。| 5202 5203## CallState<sup>11+</sup> 5204 5205表示通话状态的枚举。 5206 5207**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5208 5209**系统能力:** SystemCapability.Multimedia.AVSession.Core 5210 5211| 名称 | 值 | 说明 | 5212| -------------------------- | ---- | -------- | 5213| CALL_STATE_IDLE | 0 | 空闲状态 | 5214| CALL_STATE_INCOMING | 1 | 来电 | 5215| CALL_STATE_ACTIVE | 2 | 接通 | 5216| CALL_STATE_DIALING | 3 | 响铃 | 5217| CALL_STATE_WAITING | 4 | 等待接通 | 5218| CALL_STATE_HOLDING | 5 | 保持 | 5219| CALL_STATE_DISCONNECTING | 6 | 挂断 | 5220 5221## DisplayTag<sup>11+</sup> 5222 5223枚举,表示当前媒体资源的金标,即应用媒体音源的特殊类型标识。 5224 5225**系统能力:** SystemCapability.Multimedia.AVSession.Core 5226 5227| 名称 | 值 | 说明 | 5228| -------------------------- | ---- | ------------ | 5229| TAG_AUDIO_VIVID | 1 | AUDIO VIVID | 5230 5231## AVCastCategory<sup>10+</sup> 5232 5233投播的类别枚举。 5234 5235**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5236 5237**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 5238 5239| 名称 | 值 | 说明 | 5240| --------------------------- | ---- | ----------- | 5241| CATEGORY_LOCAL | 0 | 本地播放,默认播放设备,声音从本机或者连接的蓝牙耳机设备出声。 | 5242| CATEGORY_REMOTE | 1 | 远端播放,远端播放设备,声音从其他设备发出声音或者画面。 | 5243 5244## DeviceType<sup>10+</sup> 5245 5246播放设备的类型枚举。 5247 5248**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5249 5250| 名称 | 值 | 说明 | 5251| --------------------------- | ---- | ----------- | 5252| DEVICE_TYPE_LOCAL | 0 | 本地播放类型 <br> **系统能力:** SystemCapability.Multimedia.AVSession.Core| 5253| DEVICE_TYPE_BLUETOOTH | 10 | 蓝牙设备 <br> **系统能力:** SystemCapability.Multimedia.AVSession.Core | 5254| DEVICE_TYPE_TV | 2 | 电视 <br> **系统能力:** SystemCapability.Multimedia.AVSession.AVCast | 5255| DEVICE_TYPE_SMART_SPEAKER | 3 | 音箱设备 <br> **系统能力:** SystemCapability.Multimedia.AVSession.AVCast | 5256 5257## DeviceInfo<sup>10+</sup> 5258 5259播放设备的相关信息。 5260 5261| 名称 | 类型 | 必填 | 说明 | 5262| ---------- | -------------- | ---- | ---------------------- | 5263| castCategory | AVCastCategory | 是 | 投播的类别。 <br> **系统能力:** SystemCapability.Multimedia.AVSession.Core <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 5264| deviceId | string | 是 | 播放设备的ID。<br> **系统能力:** SystemCapability.Multimedia.AVSession.Core <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 5265| deviceName | string | 是 | 播放设备的名称。<br>**系统能力:** SystemCapability.Multimedia.AVSession.Core <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 5266| deviceType | DeviceType | 是 | 播放设备的类型。<br>**系统能力:** SystemCapability.Multimedia.AVSession.Core <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 5267| supportedProtocols<sup>11+</sup> | number | 否 | 播放设备支持的协议。默认为TYPE_LOCAL。具体取值参考[ProtocolType](#protocoltype11)。 <br> **系统能力:** SystemCapability.Multimedia.AVSession.AVCast <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5268| supportedDrmCapabilities<sup>12+</sup> | Array\<string> | 否 | 播放设备支持的DRM能力。 <br> **系统能力:** SystemCapability.Multimedia.AVSession.AVCast <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5269| manufacturer<sup>13+</sup> | string | 否 | 播放设备生产厂家。 <br> **系统能力:** SystemCapability.Multimedia.AVSession.AVCast <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。| 5270| modelName<sup>13+</sup> | string | 否 | 播放设备型号名称。 <br> **系统能力:** SystemCapability.Multimedia.AVSession.AVCast <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。| 5271 5272## OutputDeviceInfo<sup>10+</sup> 5273 5274播放设备的相关信息。 5275 5276**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5277 5278**系统能力:** SystemCapability.Multimedia.AVSession.Core 5279 5280| 名称 | 类型 | 必填 | 说明 | 5281| ---------- | -------------- | ---- | ---------------------- | 5282| devices | Array\<DeviceInfo\> | 是 | 播放设备的集合。 | 5283 5284## LoopMode<sup>10+</sup> 5285 5286表示媒体播放循环模式的枚举。 5287 5288**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5289 5290**系统能力:** SystemCapability.Multimedia.AVSession.Core 5291 5292| 名称 | 值 | 说明 | 5293| ------------------ | ---- | -------- | 5294| LOOP_MODE_SEQUENCE | 0 | 顺序播放 | 5295| LOOP_MODE_SINGLE | 1 | 单曲循环 | 5296| LOOP_MODE_LIST | 2 | 表单循环 | 5297| LOOP_MODE_SHUFFLE | 3 | 随机播放 | 5298| LOOP_MODE_CUSTOM<sup>11+</sup> | 4 | 自定义播放 | 5299 5300## PlaybackState<sup>10+</sup> 5301 5302表示媒体播放状态的枚举。 5303 5304**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5305 5306**系统能力:** SystemCapability.Multimedia.AVSession.Core 5307 5308| 名称 | 值 | 说明 | 5309| --------------------------- | ---- | ----------- | 5310| PLAYBACK_STATE_INITIAL | 0 | 初始状态 | 5311| PLAYBACK_STATE_PREPARE | 1 | 播放准备状态 | 5312| PLAYBACK_STATE_PLAY | 2 | 正在播放 | 5313| PLAYBACK_STATE_PAUSE | 3 | 暂停 | 5314| PLAYBACK_STATE_FAST_FORWARD | 4 | 快进 | 5315| PLAYBACK_STATE_REWIND | 5 | 快退 | 5316| PLAYBACK_STATE_STOP | 6 | 停止 | 5317| PLAYBACK_STATE_COMPLETED | 7 | 播放完成 | 5318| PLAYBACK_STATE_RELEASED | 8 | 释放 | 5319| PLAYBACK_STATE_ERROR | 9 | 错误 | 5320| PLAYBACK_STATE_IDLE<sup>11+</sup> | 10 | 空闲 | 5321| PLAYBACK_STATE_BUFFERING<sup>11+</sup> | 11 | 缓冲 | 5322 5323## AVSessionController<sup>10+</sup> 5324 5325AVSessionController控制器可查看会话ID,并可完成对会话发送命令及事件,获取会话元数据,播放状态信息等操作。 5326 5327### 属性 5328 5329**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5330 5331**系统能力:** SystemCapability.Multimedia.AVSession.Core 5332 5333| 名称 | 类型 | 可读 | 可写 | 说明 | 5334| :-------- | :----- | :--- | :--- | :-------------------------------------- | 5335| sessionId | string | 是 | 否 | AVSessionController对象唯一的会话标识。 | 5336 5337 5338**示例:** 5339 5340```ts 5341import { BusinessError } from '@kit.BasicServicesKit'; 5342 5343let AVSessionController: avSession.AVSessionController; 5344avSession.createController(currentAVSession.sessionId).then((controller: avSession.AVSessionController) => { 5345 AVSessionController = controller; 5346}).catch((err: BusinessError) => { 5347 console.error(`CreateController BusinessError: code: ${err.code}, message: ${err.message}`); 5348}); 5349``` 5350 5351### getAVPlaybackState<sup>10+</sup> 5352 5353getAVPlaybackState(callback: AsyncCallback\<AVPlaybackState>): void 5354 5355获取当前的远端播放状态。结果通过callback异步回调方式返回。 5356 5357**系统能力:** SystemCapability.Multimedia.AVSession.Core 5358 5359**参数:** 5360 5361| 参数名 | 类型 | 必填 | 说明 | 5362| --------- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ | 5363| callback | AsyncCallback<[AVPlaybackState](#avplaybackstate10)\> | 是 | 回调函数,返回远端播放状态。 | 5364 5365**错误码:** 5366 5367以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5368 5369| 错误码ID | 错误信息 | 5370| -------- | ---------------------------------------- | 5371| 6600101 | Session service exception. | 5372| 6600102 | The session does not exist. | 5373| 6600103 | The session controller does not exist. | 5374 5375**示例:** 5376 5377```ts 5378import { BusinessError } from '@kit.BasicServicesKit'; 5379 5380avsessionController.getAVPlaybackState((err: BusinessError, state: avSession.AVPlaybackState) => { 5381 if (err) { 5382 console.error(`getAVPlaybackState BusinessError: code: ${err.code}, message: ${err.message}`); 5383 } else { 5384 console.info('getAVPlaybackState : SUCCESS'); 5385 } 5386}); 5387``` 5388 5389### getAVPlaybackState<sup>10+</sup> 5390 5391getAVPlaybackState(): Promise\<AVPlaybackState> 5392 5393获取当前的远端播放状态。结果通过Promise异步回调方式返回。 5394 5395**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5396 5397**系统能力:** SystemCapability.Multimedia.AVSession.Core 5398 5399**返回值:** 5400 5401| 类型 | 说明 | 5402| --------- | ------------------------------------------------------------ | 5403| Promise<[AVPlaybackState](#avplaybackstate10)\> | Promise对象。返回远端播放状态。 | 5404 5405**错误码:** 5406 5407以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5408 5409| 错误码ID | 错误信息 | 5410| -------- | ---------------------------------------- | 5411| 6600101 | Session service exception. | 5412| 6600102 | The session does not exist. | 5413| 6600103 | The session controller does not exist. | 5414 5415**示例:** 5416 5417```ts 5418import { BusinessError } from '@kit.BasicServicesKit'; 5419 5420avsessionController.getAVPlaybackState().then((state: avSession.AVPlaybackState) => { 5421 console.info('getAVPlaybackState : SUCCESS'); 5422}).catch((err: BusinessError) => { 5423 console.error(`getAVPlaybackState BusinessError: code: ${err.code}, message: ${err.message}`); 5424}); 5425``` 5426 5427### getAVMetadata<sup>10+</sup> 5428 5429getAVMetadata(): Promise\<AVMetadata> 5430 5431获取会话元数据。结果通过Promise异步回调方式返回。 5432 5433**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5434 5435**系统能力:** SystemCapability.Multimedia.AVSession.Core 5436 5437**返回值:** 5438 5439| 类型 | 说明 | 5440| ----------------------------------- | ----------------------------- | 5441| Promise<[AVMetadata](#avmetadata10)\> | Promise对象,返回会话元数据。 | 5442 5443**错误码:** 5444 5445以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5446 5447| 错误码ID | 错误信息 | 5448| -------- | ---------------------------------------- | 5449| 6600101 | Session service exception. | 5450| 6600102 | The session does not exist. | 5451| 6600103 | The session controller does not exist. | 5452 5453**示例:** 5454 5455```ts 5456import { BusinessError } from '@kit.BasicServicesKit'; 5457 5458avsessionController.getAVMetadata().then((metadata: avSession.AVMetadata) => { 5459 console.info(`GetAVMetadata : SUCCESS : assetId : ${metadata.assetId}`); 5460}).catch((err: BusinessError) => { 5461 console.error(`GetAVMetadata BusinessError: code: ${err.code}, message: ${err.message}`); 5462}); 5463``` 5464 5465### getAVMetadata<sup>10+</sup> 5466 5467getAVMetadata(callback: AsyncCallback\<AVMetadata>): void 5468 5469获取会话元数据。结果通过callback异步回调方式返回。 5470 5471**系统能力:** SystemCapability.Multimedia.AVSession.Core 5472 5473**参数:** 5474 5475| 参数名 | 类型 | 必填 | 说明 | 5476| -------- | ----------------------------------------- | ---- | -------------------------- | 5477| callback | AsyncCallback<[AVMetadata](#avmetadata10)\> | 是 | 回调函数,返回会话元数据。 | 5478 5479**错误码:** 5480 5481以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5482 5483| 错误码ID | 错误信息 | 5484| -------- | ---------------------------------------- | 5485| 6600101 | Session service exception. | 5486| 6600102 | The session does not exist. | 5487| 6600103 | The session controller does not exist. | 5488 5489**示例:** 5490 5491```ts 5492import { BusinessError } from '@kit.BasicServicesKit'; 5493 5494avsessionController.getAVMetadata((err: BusinessError, metadata: avSession.AVMetadata) => { 5495 if (err) { 5496 console.error(`GetAVMetadata BusinessError: code: ${err.code}, message: ${err.message}`); 5497 } else { 5498 console.info(`GetAVMetadata : SUCCESS : assetId : ${metadata.assetId}`); 5499 } 5500}); 5501``` 5502 5503### getAVQueueTitle<sup>10+</sup> 5504 5505getAVQueueTitle(): Promise\<string> 5506 5507获取当前会话播放列表的名称。结果通过Promise异步回调方式返回。 5508 5509**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5510 5511**系统能力:** SystemCapability.Multimedia.AVSession.Core 5512 5513**返回值:** 5514 5515| 类型 | 说明 | 5516| ---------------- | ----------------------------- | 5517| Promise<string\> | Promise对象。返回播放列表名称。 | 5518 5519**错误码:** 5520 5521以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5522 5523| 错误码ID | 错误信息 | 5524| -------- | ---------------------------------------- | 5525| 6600101 | Session service exception. | 5526| 6600102 | The session does not exist. | 5527| 6600103 | The session controller does not exist. | 5528 5529**示例:** 5530 5531```ts 5532import { BusinessError } from '@kit.BasicServicesKit'; 5533 5534avsessionController.getAVQueueTitle().then((title: string) => { 5535 console.info(`GetAVQueueTitle : SUCCESS : title : ${title}`); 5536}).catch((err: BusinessError) => { 5537 console.error(`GetAVQueueTitle BusinessError: code: ${err.code}, message: ${err.message}`); 5538}); 5539``` 5540 5541### getAVQueueTitle<sup>10+</sup> 5542 5543getAVQueueTitle(callback: AsyncCallback\<string>): void 5544 5545获取当前播放列表的名称。结果通过callback异步回调方式返回。 5546 5547**系统能力:** SystemCapability.Multimedia.AVSession.Core 5548 5549**参数:** 5550 5551| 参数名 | 类型 | 必填 | 说明 | 5552| -------- | ---------------------- | ---- | ------------------------- | 5553| callback | AsyncCallback<string\> | 是 | 回调函数,返回播放列表名称。 | 5554 5555**错误码:** 5556 5557以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5558 5559| 错误码ID | 错误信息 | 5560| -------- | ---------------------------------------- | 5561| 6600101 | Session service exception. | 5562| 6600102 | The session does not exist. | 5563| 6600103 | The session controller does not exist. | 5564 5565**示例:** 5566 5567```ts 5568import { BusinessError } from '@kit.BasicServicesKit'; 5569 5570avsessionController.getAVQueueTitle((err: BusinessError, title: string) => { 5571 if (err) { 5572 console.error(`GetAVQueueTitle BusinessError: code: ${err.code}, message: ${err.message}`); 5573 } else { 5574 console.info(`GetAVQueueTitle : SUCCESS : title : ${title}`); 5575 } 5576}); 5577``` 5578 5579### getAVQueueItems<sup>10+</sup> 5580 5581getAVQueueItems(): Promise\<Array\<AVQueueItem>> 5582 5583获取当前会话播放列表相关信息。结果通过Promise异步回调方式返回。 5584 5585**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5586 5587**系统能力:** SystemCapability.Multimedia.AVSession.Core 5588 5589**返回值:** 5590 5591| 类型 | 说明 | 5592| --------------------------------------------- | ----------------------------- | 5593| Promise<Array<[AVQueueItem](#avqueueitem10)\>\> | Promise对象。返回播放列表队列。 | 5594 5595**错误码:** 5596 5597以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5598 5599| 错误码ID | 错误信息 | 5600| -------- | ---------------------------------------- | 5601| 6600101 | Session service exception. | 5602| 6600102 | The session does not exist. | 5603| 6600103 | The session controller does not exist. | 5604 5605**示例:** 5606 5607```ts 5608import { BusinessError } from '@kit.BasicServicesKit'; 5609 5610avsessionController.getAVQueueItems().then((items: avSession.AVQueueItem[]) => { 5611 console.info(`GetAVQueueItems : SUCCESS : length : ${items.length}`); 5612}).catch((err: BusinessError) => { 5613 console.error(`GetAVQueueItems BusinessError: code: ${err.code}, message: ${err.message}`); 5614}); 5615``` 5616 5617### getAVQueueItems<sup>10+</sup> 5618 5619getAVQueueItems(callback: AsyncCallback\<Array\<AVQueueItem>>): void 5620 5621获取当前播放列表相关信息。结果通过callback异步回调方式返回。 5622 5623**系统能力:** SystemCapability.Multimedia.AVSession.Core 5624 5625**参数:** 5626 5627| 参数名 | 类型 | 必填 | 说明 | 5628| -------- | --------------------------------------------------- | ---- | ------------------------- | 5629| callback | AsyncCallback<Array<[AVQueueItem](#avqueueitem10)\>\> | 是 | 回调函数,返回播放列表队列。 | 5630 5631**错误码:** 5632 5633以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5634 5635| 错误码ID | 错误信息 | 5636| -------- | ---------------------------------------- | 5637| 6600101 | Session service exception. | 5638| 6600102 | The session does not exist. | 5639| 6600103 | The session controller does not exist. | 5640 5641**示例:** 5642 5643```ts 5644import { BusinessError } from '@kit.BasicServicesKit'; 5645 5646avsessionController.getAVQueueItems((err: BusinessError, items: avSession.AVQueueItem[]) => { 5647 if (err) { 5648 console.error(`GetAVQueueItems BusinessError: code: ${err.code}, message: ${err.message}`); 5649 } else { 5650 console.info(`GetAVQueueItems : SUCCESS : length : ${items.length}`); 5651 } 5652}); 5653``` 5654 5655### skipToQueueItem<sup>10+</sup> 5656 5657skipToQueueItem(itemId: number): Promise\<void> 5658 5659设置指定播放列表单项的ID,发送给session端处理,session端可以选择对这个单项歌曲进行播放。结果通过Promise异步回调方式返回。 5660 5661**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5662 5663**系统能力:** SystemCapability.Multimedia.AVSession.Core 5664 5665**参数:** 5666 5667| 参数名 | 类型 | 必填 | 说明 | 5668| ------ | ------- | ---- | ------------------------------------------- | 5669| itemId | number | 是 | 播放列表单项的ID值,用以表示选中的播放列表单项。 | 5670 5671**返回值:** 5672 5673| 类型 | 说明 | 5674| -------------- | --------------------------------------------------------------- | 5675| Promise\<void> | Promise对象。当播放列表单项ID设置成功,无返回结果,否则返回错误对象。 | 5676 5677**错误码:** 5678 5679以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5680 5681| 错误码ID | 错误信息 | 5682| -------- | ---------------------------------------- | 5683| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 5684| 6600101 | Session service exception. | 5685| 6600102 | The session does not exist. | 5686| 6600103 | The session controller does not exist. | 5687 5688**示例:** 5689 5690```ts 5691import { BusinessError } from '@kit.BasicServicesKit'; 5692 5693let queueItemId = 0; 5694avsessionController.skipToQueueItem(queueItemId).then(() => { 5695 console.info('SkipToQueueItem successfully'); 5696}).catch((err: BusinessError) => { 5697 console.error(`SkipToQueueItem BusinessError: code: ${err.code}, message: ${err.message}`); 5698}); 5699``` 5700 5701### skipToQueueItem<sup>10+</sup> 5702 5703skipToQueueItem(itemId: number, callback: AsyncCallback\<void>): void 5704 5705设置指定播放列表单项的ID,发送给session端处理,session端可以选择对这个单项歌曲进行播放。结果通过callback异步回调方式返回。 5706 5707**系统能力:** SystemCapability.Multimedia.AVSession.Core 5708 5709**参数:** 5710 5711| 参数名 | 类型 | 必填 | 说明 | 5712| -------- | --------------------- | ---- | ----------------------------------------------------------- | 5713| itemId | number | 是 | 播放列表单项的ID值,用以表示选中的播放列表单项。 | 5714| callback | AsyncCallback\<void> | 是 | 回调函数。当播放状态设置成功,err为undefined,否则返回错误对象。 | 5715 5716**错误码:** 5717 5718以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5719 5720| 错误码ID | 错误信息 | 5721| -------- | ---------------------------------------- | 5722| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 5723| 6600101 | Session service exception. | 5724| 6600102 | The session does not exist. | 5725| 6600103 | The session controller does not exist. | 5726 5727**示例:** 5728 5729```ts 5730import { BusinessError } from '@kit.BasicServicesKit'; 5731 5732let queueItemId = 0; 5733avsessionController.skipToQueueItem(queueItemId, (err: BusinessError) => { 5734 if (err) { 5735 console.error(`SkipToQueueItem BusinessError: code: ${err.code}, message: ${err.message}`); 5736 } else { 5737 console.info('SkipToQueueItem successfully'); 5738 } 5739}); 5740``` 5741 5742### getOutputDevice<sup>10+</sup> 5743 5744getOutputDevice(): Promise\<OutputDeviceInfo> 5745 5746获取播放设备信息。结果通过Promise异步回调方式返回。 5747 5748**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5749 5750**系统能力:** SystemCapability.Multimedia.AVSession.Core 5751 5752**返回值:** 5753 5754| 类型 | 说明 | 5755| ----------------------------------------------- | --------------------------------- | 5756| Promise<[OutputDeviceInfo](#outputdeviceinfo10)\> | Promise对象,返回播放设备信息。 | 5757 5758**错误码:** 5759 5760以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5761 5762| 错误码ID | 错误信息 | 5763| -------- | ---------------------------------------- | 5764| 600101 | Session service exception. | 5765| 600103 | The session controller does not exist. | 5766 5767**示例:** 5768 5769```ts 5770import { BusinessError } from '@kit.BasicServicesKit'; 5771 5772avsessionController.getOutputDevice().then((deviceInfo: avSession.OutputDeviceInfo) => { 5773 console.info('GetOutputDevice : SUCCESS'); 5774}).catch((err: BusinessError) => { 5775 console.error(`GetOutputDevice BusinessError: code: ${err.code}, message: ${err.message}`); 5776}); 5777``` 5778 5779### getOutputDevice<sup>10+</sup> 5780 5781getOutputDevice(callback: AsyncCallback\<OutputDeviceInfo>): void 5782 5783获取播放设备信息。结果通过callback异步回调方式返回。 5784 5785**系统能力:** SystemCapability.Multimedia.AVSession.Core 5786 5787**参数:** 5788 5789| 参数名 | 类型 | 必填 | 说明 | 5790| -------- | ----------------------------------------------------- | ---- | ------------------------------ | 5791| callback | AsyncCallback<[OutputDeviceInfo](#outputdeviceinfo10)\> | 是 | 回调函数,返回播放设备信息。 | 5792 5793**错误码:** 5794 5795以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5796 5797| 错误码ID | 错误信息 | 5798| -------- | ---------------------------------------- | 5799| 600101 | Session service exception. | 5800| 600103 | The session controller does not exist. | 5801 5802**示例:** 5803 5804```ts 5805import { BusinessError } from '@kit.BasicServicesKit'; 5806 5807avsessionController.getOutputDevice((err: BusinessError, deviceInfo: avSession.OutputDeviceInfo) => { 5808 if (err) { 5809 console.error(`GetOutputDevice BusinessError: code: ${err.code}, message: ${err.message}`); 5810 } else { 5811 console.info('GetOutputDevice : SUCCESS'); 5812 } 5813}); 5814``` 5815 5816### sendAVKeyEvent<sup>10+</sup> 5817 5818sendAVKeyEvent(event: KeyEvent): Promise\<void> 5819 5820发送按键事件到控制器对应的会话。结果通过Promise异步回调方式返回。 5821 5822**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5823 5824**系统能力:** SystemCapability.Multimedia.AVSession.Core 5825 5826**参数:** 5827 5828| 参数名 | 类型 | 必填 | 说明 | 5829| ------ | ------------------------------------------------------------ | ---- | ---------- | 5830| event | [KeyEvent](../apis-input-kit/js-apis-keyevent.md) | 是 | 按键事件。 | 5831 5832**错误码:** 5833 5834以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5835 5836| 错误码ID | 错误信息 | 5837| -------- | ---------------------------------------- | 5838| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 5839| 600101 | Session service exception. | 5840| 600102 | The session does not exist. | 5841| 600103 | The session controller does not exist. | 5842| 600105 | Invalid session command. | 5843| 600106 | The session is not activated. | 5844 5845**返回值:** 5846 5847| 类型 | 说明 | 5848| -------------- | ----------------------------- | 5849| Promise\<void> | Promise对象。当事件发送成功,无返回结果,否则返回错误对象。 | 5850 5851**示例:** 5852 5853```ts 5854import { Key, KeyEvent } from '@kit.InputKit'; 5855import { BusinessError } from '@kit.BasicServicesKit'; 5856 5857let keyItem: Key = {code:0x49, pressedTime:2, deviceId:0}; 5858let event:KeyEvent = {id:1, deviceId:0, actionTime:1, screenId:1, windowId:1, action:2, key:keyItem, unicodeChar:0, keys:[keyItem], ctrlKey:false, altKey:false, shiftKey:false, logoKey:false, fnKey:false, capsLock:false, numLock:false, scrollLock:false}; 5859 5860 5861avsessionController.sendAVKeyEvent(event).then(() => { 5862 console.info('SendAVKeyEvent Successfully'); 5863}).catch((err: BusinessError) => { 5864 console.error(`SendAVKeyEvent BusinessError: code: ${err.code}, message: ${err.message}`); 5865}); 5866``` 5867 5868### sendAVKeyEvent<sup>10+</sup> 5869 5870sendAVKeyEvent(event: KeyEvent, callback: AsyncCallback\<void>): void 5871 5872发送按键事件到会话。结果通过callback异步回调方式返回。 5873 5874**系统能力:** SystemCapability.Multimedia.AVSession.Core 5875 5876**参数:** 5877 5878| 参数名 | 类型 | 必填 | 说明 | 5879| -------- | ------------------------------------------------------------ | ---- | ---------- | 5880| event | [KeyEvent](../apis-input-kit/js-apis-keyevent.md) | 是 | 按键事件。 | 5881| callback | AsyncCallback\<void> | 是 | 回调函数。当事件发送成功,err为undefined,否则返回错误对象。 | 5882 5883**错误码:** 5884 5885以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5886 5887| 错误码ID | 错误信息 | 5888| -------- | ---------------------------------------- | 5889| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 5890| 600101 | Session service exception. | 5891| 600102 | The session does not exist. | 5892| 600103 | The session controller does not exist. | 5893| 600105 | Invalid session command. | 5894| 600106 | The session is not activated. | 5895 5896**示例:** 5897 5898```ts 5899import { Key, KeyEvent } from '@kit.InputKit'; 5900import { BusinessError } from '@kit.BasicServicesKit'; 5901 5902let keyItem: Key = {code:0x49, pressedTime:2, deviceId:0}; 5903let event:KeyEvent = {id:1, deviceId:0, actionTime:1, screenId:1, windowId:1, action:2, key:keyItem, unicodeChar:0, keys:[keyItem], ctrlKey:false, altKey:false, shiftKey:false, logoKey:false, fnKey:false, capsLock:false, numLock:false, scrollLock:false}; 5904avsessionController.sendAVKeyEvent(event, (err: BusinessError) => { 5905 if (err) { 5906 console.error(`SendAVKeyEvent BusinessError: code: ${err.code}, message: ${err.message}`); 5907 } else { 5908 console.info('SendAVKeyEvent Successfully'); 5909 } 5910}); 5911``` 5912 5913### getLaunchAbility<sup>10+</sup> 5914 5915getLaunchAbility(): Promise\<WantAgent> 5916 5917获取应用在会话中保存的WantAgent对象。结果通过Promise异步回调方式返回。 5918 5919**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5920 5921**系统能力:** SystemCapability.Multimedia.AVSession.Core 5922 5923**返回值:** 5924 5925| 类型 | 说明 | 5926| ------------------------------------------------------- | ------------------------------------------------------------ | 5927| Promise<[WantAgent](../apis-ability-kit/js-apis-app-ability-wantAgent.md)\> | Promise对象,返回在[setLaunchAbility](#setlaunchability10)保存的对象,包括应用的相关属性信息,如bundleName,abilityName,deviceId等。 | 5928 5929**错误码:** 5930 5931以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5932 5933| 错误码ID | 错误信息 | 5934| -------- | ---------------------------------------- | 5935| 6600101 | Session service exception. | 5936| 6600102 | The session does not exist. | 5937| 6600103 | The session controller does not exist. | 5938 5939**示例:** 5940 5941```ts 5942import { BusinessError } from '@kit.BasicServicesKit'; 5943 5944avsessionController.getLaunchAbility().then((agent: object) => { 5945 console.info(`GetLaunchAbility : SUCCESS : wantAgent : ${agent}`); 5946}).catch((err: BusinessError) => { 5947 console.error(`GetLaunchAbility BusinessError: code: ${err.code}, message: ${err.message}`); 5948}); 5949``` 5950 5951### getLaunchAbility<sup>10+</sup> 5952 5953getLaunchAbility(callback: AsyncCallback\<WantAgent>): void 5954 5955获取应用在会话中保存的WantAgent对象。结果通过callback异步回调方式返回。 5956 5957**系统能力:** SystemCapability.Multimedia.AVSession.Core 5958 5959**参数:** 5960 5961| 参数名 | 类型 | 必填 | 说明 | 5962| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 5963| callback | AsyncCallback<[WantAgent](../apis-ability-kit/js-apis-app-ability-wantAgent.md)\> | 是 | 回调函数。返回在[setLaunchAbility](#setlaunchability10)保存的对象,包括应用的相关属性信息,如bundleName,abilityName,deviceId等。 | 5964 5965**错误码:** 5966 5967以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 5968 5969| 错误码ID | 错误信息 | 5970| -------- | ---------------------------------------- | 5971| 6600101 | Session service exception. | 5972| 6600102 | The session does not exist. | 5973| 6600103 | The session controller does not exist. | 5974 5975**示例:** 5976 5977```ts 5978import { BusinessError } from '@kit.BasicServicesKit'; 5979 5980avsessionController.getLaunchAbility((err: BusinessError, agent: object) => { 5981 if (err) { 5982 console.error(`GetLaunchAbility BusinessError: code: ${err.code}, message: ${err.message}`); 5983 } else { 5984 console.info(`GetLaunchAbility : SUCCESS : wantAgent : ${agent}`); 5985 } 5986}); 5987``` 5988 5989### getRealPlaybackPositionSync<sup>10+</sup> 5990 5991getRealPlaybackPositionSync(): number 5992 5993获取当前播放位置。 5994 5995**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5996 5997**系统能力:** SystemCapability.Multimedia.AVSession.Core 5998 5999**返回值:** 6000 6001| 类型 | 说明 | 6002| ------ | ------------------ | 6003| number | 时间节点,毫秒数。 | 6004 6005**错误码:** 6006 6007以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6008 6009| 错误码ID | 错误信息 | 6010| -------- | ---------------------------------------- | 6011| 6600101 | Session service exception. | 6012| 6600103 | The session controller does not exist. | 6013 6014**示例:** 6015 6016```ts 6017let time: number = avsessionController.getRealPlaybackPositionSync(); 6018``` 6019 6020### isActive<sup>10+</sup> 6021 6022isActive(): Promise\<boolean> 6023 6024获取会话是否被激活。结果通过Promise异步回调方式返回。 6025 6026**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6027 6028**系统能力:** SystemCapability.Multimedia.AVSession.Core 6029 6030**返回值:** 6031 6032| 类型 | 说明 | 6033| ----------------- | ------------------------------------------------------------ | 6034| Promise<boolean\> | Promise对象,返回会话是否为激活状态,true表示被激活,false表示禁用。 | 6035 6036**错误码:** 6037 6038以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6039 6040| 错误码ID | 错误信息 | 6041| -------- | ---------------------------------------- | 6042| 6600101 | Session service exception. | 6043| 6600102 | The session does not exist. | 6044| 6600103 | The session controller does not exist. | 6045 6046**示例:** 6047 6048```ts 6049import { BusinessError } from '@kit.BasicServicesKit'; 6050 6051avsessionController.isActive().then((isActive: boolean) => { 6052 console.info(`IsActive : SUCCESS : isactive : ${isActive}`); 6053}).catch((err: BusinessError) => { 6054 console.error(`IsActive BusinessError: code: ${err.code}, message: ${err.message}`); 6055}); 6056``` 6057 6058### isActive<sup>10+</sup> 6059 6060isActive(callback: AsyncCallback\<boolean>): void 6061 6062判断会话是否被激活。结果通过callback异步回调方式返回。 6063 6064**系统能力:** SystemCapability.Multimedia.AVSession.Core 6065 6066**参数:** 6067 6068| 参数名 | 类型 | 必填 | 说明 | 6069| -------- | ----------------------- | ---- | ------------------------------------------------------------ | 6070| callback | AsyncCallback<boolean\> | 是 | 回调函数,返回会话是否为激活状态,true表示被激活,false表示禁用。 | 6071 6072**错误码:** 6073 6074以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6075 6076| 错误码ID | 错误信息 | 6077| -------- | ---------------------------------------- | 6078| 6600101 | Session service exception. | 6079| 6600102 | The session does not exist. | 6080| 6600103 | The session controller does not exist. | 6081 6082**示例:** 6083 6084```ts 6085import { BusinessError } from '@kit.BasicServicesKit'; 6086 6087avsessionController.isActive((err: BusinessError, isActive: boolean) => { 6088 if (err) { 6089 console.error(`IsActive BusinessError: code: ${err.code}, message: ${err.message}`); 6090 } else { 6091 console.info(`IsActive : SUCCESS : isactive : ${isActive}`); 6092 } 6093}); 6094``` 6095 6096### destroy<sup>10+</sup> 6097 6098destroy(): Promise\<void> 6099 6100销毁当前控制器,销毁后当前控制器不可再用。结果通过Promise异步回调方式返回。 6101 6102**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6103 6104**系统能力:** SystemCapability.Multimedia.AVSession.Core 6105 6106**返回值:** 6107 6108| 类型 | 说明 | 6109| -------------- | ----------------------------- | 6110| Promise\<void> | Promise对象。当控制器销毁成功,无返回结果,否则返回错误对象。 | 6111 6112**错误码:** 6113 6114以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6115 6116| 错误码ID | 错误信息 | 6117| -------- | ---------------------------------------- | 6118| 6600101 | Session service exception. | 6119| 6600103 | The session controller does not exist. | 6120 6121**示例:** 6122 6123```ts 6124import { BusinessError } from '@kit.BasicServicesKit'; 6125 6126avsessionController.destroy().then(() => { 6127 console.info('Destroy : SUCCESS '); 6128}).catch((err: BusinessError) => { 6129 console.error(`Destroy BusinessError: code: ${err.code}, message: ${err.message}`); 6130}); 6131``` 6132 6133### destroy<sup>10+</sup> 6134 6135destroy(callback: AsyncCallback\<void>): void 6136 6137销毁当前控制器,销毁后当前控制器不可再用。结果通过callback异步回调方式返回。 6138 6139**系统能力:** SystemCapability.Multimedia.AVSession.Core 6140 6141**参数:** 6142 6143| 参数名 | 类型 | 必填 | 说明 | 6144| -------- | -------------------- | ---- | ---------- | 6145| callback | AsyncCallback\<void> | 是 | 回调函数。当控制器销毁成功,err为undefined,否则返回错误对象。 | 6146 6147**错误码:** 6148 6149以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6150 6151| 错误码ID | 错误信息 | 6152| -------- | ---------------------------------------- | 6153| 6600101 | Session service exception. | 6154| 6600103 | The session controller does not exist. | 6155 6156**示例:** 6157 6158```ts 6159import { BusinessError } from '@kit.BasicServicesKit'; 6160 6161avsessionController.destroy((err: BusinessError) => { 6162 if (err) { 6163 console.error(`Destroy BusinessError: code: ${err.code}, message: ${err.message}`); 6164 } else { 6165 console.info('Destroy : SUCCESS '); 6166 } 6167}); 6168``` 6169 6170### getValidCommands<sup>10+</sup> 6171 6172getValidCommands(): Promise\<Array\<AVControlCommandType>> 6173 6174获取会话支持的有效命令。结果通过Promise异步回调方式返回。 6175 6176**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6177 6178**系统能力:** SystemCapability.Multimedia.AVSession.Core 6179 6180**返回值:** 6181 6182| 类型 | 说明 | 6183| ------------------------------------------------------------ | --------------------------------- | 6184| Promise<Array<[AVControlCommandType](#avcontrolcommandtype10)\>\> | Promise对象。返回有效命令的集合。 | 6185 6186**错误码:** 6187 6188以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6189 6190| 错误码ID | 错误信息 | 6191| -------- | ---------------------------------------- | 6192| 6600101 | Session service exception. | 6193| 6600102 | The session does not exist. | 6194| 6600103 | The session controller does not exist. | 6195 6196**示例:** 6197 6198```ts 6199import { BusinessError } from '@kit.BasicServicesKit'; 6200 6201avsessionController.getValidCommands().then((validCommands: avSession.AVControlCommandType[]) => { 6202 console.info(`GetValidCommands : SUCCESS : size : ${validCommands.length}`); 6203}).catch((err: BusinessError) => { 6204 console.error(`GetValidCommands BusinessError: code: ${err.code}, message: ${err.message}`); 6205}); 6206``` 6207 6208### getValidCommands<sup>10+</sup> 6209 6210getValidCommands(callback: AsyncCallback\<Array\<AVControlCommandType>>): void 6211 6212获取会话支持的有效命令。结果通过callback异步回调方式返回。 6213 6214**系统能力:** SystemCapability.Multimedia.AVSession.Core 6215 6216**参数:** 6217 6218| 参数名 | 类型 | 必填 | 说明 | 6219| -------- | ------------------------------------------------------------ | ---- | ------------------------------ | 6220| callback | AsyncCallback\<Array\<[AVControlCommandType](#avcontrolcommandtype10)\>\> | 是 | 回调函数,返回有效命令的集合。 | 6221 6222**错误码:** 6223 6224以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6225 6226| 错误码ID | 错误信息 | 6227| -------- | ---------------------------------------- | 6228| 6600101 | Session service exception. | 6229| 6600102 | The session does not exist. | 6230| 6600103 | The session controller does not exist. | 6231 6232**示例:** 6233 6234```ts 6235import { BusinessError } from '@kit.BasicServicesKit'; 6236 6237avsessionController.getValidCommands((err: BusinessError, validCommands: avSession.AVControlCommandType[]) => { 6238 if (err) { 6239 console.error(`GetValidCommands BusinessError: code: ${err.code}, message: ${err.message}`); 6240 } else { 6241 console.info(`GetValidCommands : SUCCESS : size : ${validCommands.length}`); 6242 } 6243}); 6244``` 6245 6246### sendControlCommand<sup>10+</sup> 6247 6248sendControlCommand(command: AVControlCommand): Promise\<void> 6249 6250通过控制器发送命令到其对应的会话。结果通过Promise异步回调方式返回。 6251 6252> **说明:** 6253> 6254> 媒体控制方在使用sendControlCommand命令前,需要确保控制对应的媒体会话注册了对应的监听,注册媒体会话相关监听的方法请参见接口[on'play'](#onplay10)、[on'pause'](#onpause10)等。 6255 6256**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6257 6258**系统能力:** SystemCapability.Multimedia.AVSession.Core 6259 6260**参数:** 6261 6262| 参数名 | 类型 | 必填 | 说明 | 6263| ------- | ------------------------------------- | ---- | ------------------------------ | 6264| command | [AVControlCommand](#avcontrolcommand10) | 是 | 会话的相关命令和命令相关参数。 | 6265 6266**返回值:** 6267 6268| 类型 | 说明 | 6269| -------------- | ----------------------------- | 6270| Promise\<void> | Promise对象。当命令发送成功,无返回结果,否则返回错误对象。 | 6271 6272**错误码:** 6273 6274以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6275 6276| 错误码ID | 错误信息 | 6277| -------- | ---------------------------------------- | 6278| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 6279| 6600101 | Session service exception. | 6280| 6600102 | The session does not exist. | 6281| 6600103 | The session controller does not exist. | 6282| 6600105 | Invalid session command. | 6283| 6600106 | The session is not activated. | 6284| 6600107 | Too many commands or events. | 6285 6286**示例:** 6287 6288```ts 6289import { BusinessError } from '@kit.BasicServicesKit'; 6290 6291let avCommand: avSession.AVControlCommand = {command:'play'}; 6292avsessionController.sendControlCommand(avCommand).then(() => { 6293 console.info('SendControlCommand successfully'); 6294}).catch((err: BusinessError) => { 6295 console.error(`SendControlCommand BusinessError: code: ${err.code}, message: ${err.message}`); 6296}); 6297``` 6298 6299### sendControlCommand<sup>10+</sup> 6300 6301sendControlCommand(command: AVControlCommand, callback: AsyncCallback\<void>): void 6302 6303通过会话控制器发送命令到其对应的会话。结果通过callback异步回调方式返回。 6304 6305> **说明:** 6306> 6307> 媒体控制方在使用sendControlCommand命令前,需要确保控制对应的媒体会话注册了对应的监听,注册媒体会话相关监听的方法请参见接口[on'play'](#onplay10)、[on'pause'](#onpause10)等。 6308 6309**系统能力:** SystemCapability.Multimedia.AVSession.Core 6310 6311**参数:** 6312 6313| 参数名 | 类型 | 必填 | 说明 | 6314| -------- | ------------------------------------- | ---- | ------------------------------ | 6315| command | [AVControlCommand](#avcontrolcommand10) | 是 | 会话的相关命令和命令相关参数。 | 6316| callback | AsyncCallback\<void> | 是 | 回调函数。当命令发送成功,err为undefined,否则返回错误对象。 | 6317 6318**错误码:** 6319 6320以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6321 6322| 错误码ID | 错误信息 | 6323| -------- | ------------------------------- | 6324| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 6325| 6600101 | Session service exception. | 6326| 6600102 | The session does not exist. | 6327| 6600103 | The session controller does not exist. | 6328| 6600105 | Invalid session command. | 6329| 6600106 | The session is not activated. | 6330| 6600107 | Too many commands or events. | 6331 6332**示例:** 6333 6334```ts 6335import { BusinessError } from '@kit.BasicServicesKit'; 6336 6337let avCommand: avSession.AVControlCommand = {command:'play'}; 6338avsessionController.sendControlCommand(avCommand, (err: BusinessError) => { 6339 if (err) { 6340 console.error(`SendControlCommand BusinessError: code: ${err.code}, message: ${err.message}`); 6341 } else { 6342 console.info('SendControlCommand successfully'); 6343 } 6344}); 6345``` 6346 6347### sendCommonCommand<sup>10+</sup> 6348 6349sendCommonCommand(command: string, args: {[key: string]: Object}): Promise\<void> 6350 6351通过会话控制器发送自定义控制命令到其对应的会话。结果通过Promise异步回调方式返回。 6352 6353**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6354 6355**系统能力:** SystemCapability.Multimedia.AVSession.Core 6356 6357**参数:** 6358 6359| 参数名 | 类型 | 必填 | 说明 | 6360| ------- | ------------------------------------- | ---- | ------------------------------ | 6361| command | string | 是 | 需要设置的自定义控制命令的名称 | 6362| args | {[key: string]: Object} | 是 | 需要传递的控制命令键值对 | 6363 6364> **说明:** 6365> 参数args支持的数据类型有:字符串、数字、布尔、对象、数组和文件描述符等,详细介绍请参见[@ohos.app.ability.Want(Want)](../apis-ability-kit/js-apis-app-ability-want.md)。 6366 6367**返回值:** 6368 6369| 类型 | 说明 | 6370| -------------- | ----------------------------- | 6371| Promise\<void> | Promise对象。当命令发送成功,无返回结果,否则返回错误对象。 | 6372 6373**错误码:** 6374 6375以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6376 6377| 错误码ID | 错误信息 | 6378| -------- | ---------------------------------------- | 6379| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | 6380| 6600101 | Session service exception. | 6381| 6600102 | The session does not exist. | 6382| 6600103 | The session controller does not exist. | 6383| 6600105 | Invalid session command. | 6384| 6600106 | The session is not activated. | 6385| 6600107 | Too many commands or events. | 6386 6387**示例:** 6388 6389```ts 6390import { BusinessError } from '@kit.BasicServicesKit'; 6391 6392let avSessionController: avSession.AVSessionController | undefined = undefined; 6393let currentAVSession: avSession.AVSession | undefined = undefined; 6394let tag = "createNewSession"; 6395let context: Context = getContext(this); 6396let sessionId: string = ""; 6397avSession.createAVSession(context, tag, "audio", (err: BusinessError, data: avSession.AVSession) => { 6398 if (err) { 6399 console.error(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`); 6400 } else { 6401 currentAVSession = data; 6402 } 6403}); 6404if (currentAVSession !== undefined) { 6405 sessionId = (currentAVSession as avSession.AVSession).sessionId; 6406 avSession.createController(sessionId).then((controller: avSession.AVSessionController) => { 6407 avSessionController = controller; 6408 }).catch((err: BusinessError) => { 6409 console.error(`CreateController BusinessError: code: ${err.code}, message: ${err.message}`); 6410 }); 6411} 6412 6413let commandName = "my_command"; 6414if (avSessionController !== undefined) { 6415 (avSessionController as avSession.AVSessionController).sendCommonCommand(commandName, {command : "This is my command"}).then(() => { 6416 console.info('SendCommonCommand successfully'); 6417 }).catch((err: BusinessError) => { 6418 console.error(`SendCommonCommand BusinessError: code: ${err.code}, message: ${err.message}`); 6419 }) 6420} 6421``` 6422 6423### sendCommonCommand<sup>10+</sup> 6424 6425sendCommonCommand(command: string, args: {[key: string]: Object}, callback: AsyncCallback\<void>): void 6426 6427通过会话控制器发送自定义命令到其对应的会话。结果通过callback异步回调方式返回。 6428 6429**系统能力:** SystemCapability.Multimedia.AVSession.Core 6430 6431**参数:** 6432 6433| 参数名 | 类型 | 必填 | 说明 | 6434| ------- | ------------------------------------- | ---- | ------------------------------ | 6435| command | string | 是 | 需要设置的自定义控制命令的名称 | 6436| args | {[key: string]: Object} | 是 | 需要传递的控制命令键值对 | 6437| callback | AsyncCallback\<void> | 是 | 回调函数。当命令发送成功,err为undefined,否则返回错误对象。 | 6438 6439> **说明:** 6440> 参数args支持的数据类型有:字符串、数字、布尔、对象、数组和文件描述符等,详细介绍请参见[@ohos.app.ability.Want(Want)](../apis-ability-kit/js-apis-app-ability-want.md)。 6441 6442**错误码:** 6443 6444以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6445 6446| 错误码ID | 错误信息 | 6447| -------- | ------------------------------- | 6448| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Parameter verification failed.| 6449| 6600101 | Session service exception. | 6450| 6600102 | The session does not exist. | 6451| 6600103 | The session controller does not exist. | 6452| 6600105 | Invalid session command. | 6453| 6600106 | The session is not activated. | 6454| 6600107 | Too many commands or events. | 6455 6456**示例:** 6457 6458```ts 6459import { BusinessError } from '@kit.BasicServicesKit'; 6460let avSessionController: avSession.AVSessionController | undefined = undefined; 6461let currentAVSession: avSession.AVSession | undefined = undefined; 6462let tag = "createNewSession"; 6463let context: Context = getContext(this); 6464 6465avSession.createAVSession(context, tag, "audio", (err: BusinessError, data: avSession.AVSession) => { 6466 if (err) { 6467 console.error(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`); 6468 } else { 6469 currentAVSession = data; 6470 } 6471}); 6472if (currentAVSession !== undefined) { 6473 avSession.createController((currentAVSession as avSession.AVSession).sessionId).then((controller: avSession.AVSessionController) => { 6474 avSessionController = controller; 6475 }).catch((err: BusinessError) => { 6476 console.error(`CreateController BusinessError: code: ${err.code}, message: ${err.message}`); 6477 }); 6478} 6479 6480let commandName = "my_command"; 6481if (avSessionController !== undefined) { 6482 (avSessionController as avSession.AVSessionController).sendCommonCommand(commandName, {command : "This is my command"}, (err: BusinessError) => { 6483 if (err) { 6484 console.error(`SendCommonCommand BusinessError: code: ${err.code}, message: ${err.message}`); 6485 } 6486 }) 6487} 6488``` 6489 6490### getExtras<sup>10+</sup> 6491 6492getExtras(): Promise\<{[key: string]: Object}> 6493 6494获取媒体提供方设置的自定义媒体数据包。结果通过Promise异步回调方式返回。 6495 6496**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6497 6498**系统能力:** SystemCapability.Multimedia.AVSession.Core 6499 6500**返回值:** 6501 6502| 类型 | 说明 | 6503| ----------------------------------- | ----------------------------- | 6504| Promise<{[key: string]: Object}\> | Promise对象,返回媒体提供方设置的自定义媒体数据包,数据包的内容与setExtras设置的内容完全一致。 | 6505 6506**错误码:** 6507 6508以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6509 6510| 错误码ID | 错误信息 | 6511| -------- | ---------------------------------------- | 6512| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 6513| 6600101 | Session service exception. | 6514| 6600102 | The session does not exist. | 6515| 6600103 | The session controller does not exist. | 6516| 6600105 | Invalid session command. | 6517| 6600107 | Too many commands or events. | 6518 6519**示例:** 6520 6521```ts 6522import { BusinessError } from '@kit.BasicServicesKit'; 6523 6524let avSessionController: avSession.AVSessionController | undefined = undefined; 6525let currentAVSession: avSession.AVSession | undefined = undefined; 6526let tag = "createNewSession"; 6527let context: Context = getContext(this); 6528 6529avSession.createAVSession(context, tag, "audio", (err: BusinessError, data: avSession.AVSession) => { 6530 if (err) { 6531 console.error(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`); 6532 } else { 6533 currentAVSession = data; 6534 } 6535}); 6536if (currentAVSession !== undefined) { 6537 avSession.createController((currentAVSession as avSession.AVSession).sessionId).then((controller: avSession.AVSessionController) => { 6538 avSessionController = controller; 6539 }).catch((err: BusinessError) => { 6540 console.error(`CreateController BusinessError: code: ${err.code}, message: ${err.message}`); 6541 }); 6542} 6543 6544if (avSessionController !== undefined) { 6545 (avSessionController as avSession.AVSessionController).getExtras().then((extras) => { 6546 console.info(`getExtras : SUCCESS : ${extras}`); 6547 }).catch((err: BusinessError) => { 6548 console.error(`getExtras BusinessError: code: ${err.code}, message: ${err.message}`); 6549 }); 6550} 6551``` 6552 6553### getExtras<sup>10+</sup> 6554 6555getExtras(callback: AsyncCallback\<{[key: string]: Object}>): void 6556 6557获取媒体提供方设置的自定义媒体数据包,结果通过callback异步回调方式返回。 6558 6559**系统能力:** SystemCapability.Multimedia.AVSession.Core 6560 6561**参数:** 6562 6563| 参数名 | 类型 | 必填 | 说明 | 6564| -------- | ----------------------------------------- | ---- | -------------------------- | 6565| callback | AsyncCallback<{[key: string]: Object}\> | 是 | 回调函数,返回媒体提供方设置的自定义媒体数据包,数据包的内容与setExtras设置的内容完全一致。 | 6566 6567**错误码:** 6568 6569以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6570 6571| 错误码ID | 错误信息 | 6572| -------- | ---------------------------------------- | 6573| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | 6574| 6600101 | Session service exception. | 6575| 6600102 | The session does not exist. | 6576| 6600103 | The session controller does not exist. | 6577| 6600105 | Invalid session command. | 6578| 6600107 | Too many commands or events. | 6579 6580**示例:** 6581 6582```ts 6583import { BusinessError } from '@kit.BasicServicesKit'; 6584 6585let avSessionController: avSession.AVSessionController | undefined = undefined; 6586let currentAVSession: avSession.AVSession | undefined = undefined; 6587let tag = "createNewSession"; 6588let context: Context = getContext(this); 6589 6590avSession.createAVSession(context, tag, "audio", (err: BusinessError, data: avSession.AVSession) => { 6591 if (err) { 6592 console.error(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`); 6593 } else { 6594 currentAVSession = data; 6595 } 6596}); 6597if (currentAVSession !== undefined) { 6598 avSession.createController((currentAVSession as avSession.AVSession).sessionId).then((controller: avSession.AVSessionController) => { 6599 avSessionController = controller; 6600 }).catch((err: BusinessError) => { 6601 console.error(`CreateController BusinessError: code: ${err.code}, message: ${err.message}`); 6602 }); 6603} 6604 6605if (avSessionController !== undefined) { 6606 (avSessionController as avSession.AVSessionController).getExtras((err, extras) => { 6607 if (err) { 6608 console.error(`getExtras BusinessError: code: ${err.code}, message: ${err.message}`); 6609 } else { 6610 console.info(`getExtras : SUCCESS : ${extras}`); 6611 } 6612 }); 6613} 6614``` 6615 6616### on('metadataChange')<sup>10+</sup> 6617 6618on(type: 'metadataChange', filter: Array\<keyof AVMetadata> | 'all', callback: (data: AVMetadata) => void) 6619 6620设置元数据变化的监听事件。 6621 6622**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6623 6624**系统能力:** SystemCapability.Multimedia.AVSession.Core 6625 6626**参数:** 6627 6628| 参数名 | 类型 | 必填 | 说明 | 6629| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 6630| type | string | 是 | 事件回调类型,支持事件`'metadataChange'`:当元数据变化时,触发该事件。 | 6631| filter | Array\<keyof [AVMetadata](#avmetadata10)\> | 'all' | 是 | 'all' 表示关注元数据所有字段变化;Array<keyof [AVMetadata](#avmetadata10)\> 表示关注Array中的字段变化。 | 6632| callback | (data: [AVMetadata](#avmetadata10)) => void | 是 | 回调函数,参数data是变化后的元数据。 | 6633 6634**错误码:** 6635 6636以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6637 6638| 错误码ID | 错误信息 | 6639| -------- | ------------------------------ | 6640| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 6641| 6600101 | Session service exception. | 6642| 6600103 | The session controller does not exist. | 6643 6644**示例:** 6645 6646```ts 6647avsessionController.on('metadataChange', 'all', (metadata: avSession.AVMetadata) => { 6648 console.info(`on metadataChange assetId : ${metadata.assetId}`); 6649}); 6650 6651avsessionController.on('metadataChange', ['assetId', 'title', 'description'], (metadata: avSession.AVMetadata) => { 6652 console.info(`on metadataChange assetId : ${metadata.assetId}`); 6653}); 6654 6655``` 6656 6657### off('metadataChange')<sup>10+</sup> 6658 6659off(type: 'metadataChange', callback?: (data: AVMetadata) => void) 6660 6661媒体控制器取消监听元数据变化的事件。 6662 6663**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6664 6665**系统能力:** SystemCapability.Multimedia.AVSession.Core 6666 6667**参数:** 6668 6669| 参数名 | 类型 | 必填 | 说明 | 6670| -------- | ------------------------------------------------ | ---- | ------------------------------------------------------ | 6671| type | string | 是 | 取消对应的监听事件,支持事件`'metadataChange'`。 | 6672| callback | (data: [AVMetadata](#avmetadata10)) => void | 否 | 回调函数,参数data是变化后的元数据。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 6673 6674**错误码:** 6675 6676以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6677 6678| 错误码ID | 错误信息 | 6679| -------- | ---------------- | 6680| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 6681| 6600101 | Session service exception. | 6682| 6600103 | The session controller does not exist. | 6683 6684**示例:** 6685 6686```ts 6687avsessionController.off('metadataChange'); 6688``` 6689 6690### on('playbackStateChange')<sup>10+</sup> 6691 6692on(type: 'playbackStateChange', filter: Array\<keyof AVPlaybackState> | 'all', callback: (state: AVPlaybackState) => void) 6693 6694设置播放状态变化的监听事件。 6695 6696**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6697 6698**系统能力:** SystemCapability.Multimedia.AVSession.Core 6699 6700**参数:** 6701 6702| 参数名 | 类型 | 必填 | 说明 | 6703| --------| -----------|-----|------------| 6704| type | string | 是 | 事件回调类型,支持事件`'playbackStateChange'`:当播放状态变化时,触发该事件。 | 6705| filter | Array\<keyof [AVPlaybackState](#avplaybackstate10)\> | 'all' | 是 | 'all' 表示关注播放状态所有字段变化;Array<keyof [AVPlaybackState](#avplaybackstate10)\> 表示关注Array中的字段变化。 | 6706| callback | (state: [AVPlaybackState](#avplaybackstate10)) => void | 是 | 回调函数,参数state是变化后的播放状态。| 6707 6708**错误码:** 6709 6710以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6711 6712| 错误码ID | 错误信息 | 6713| -------- | ------------------------------ | 6714| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 6715| 6600101 | Session service exception. | 6716| 6600103 | The session controller does not exist. | 6717 6718**示例:** 6719 6720```ts 6721avsessionController.on('playbackStateChange', 'all', (playbackState: avSession.AVPlaybackState) => { 6722 console.info(`on playbackStateChange state : ${playbackState.state}`); 6723}); 6724 6725avsessionController.on('playbackStateChange', ['state', 'speed', 'loopMode'], (playbackState: avSession.AVPlaybackState) => { 6726 console.info(`on playbackStateChange state : ${playbackState.state}`); 6727}); 6728``` 6729 6730### off('playbackStateChange')<sup>10+</sup> 6731 6732off(type: 'playbackStateChange', callback?: (state: AVPlaybackState) => void) 6733 6734媒体控制器取消监听播放状态变化的事件。 6735 6736**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6737 6738**系统能力:** SystemCapability.Multimedia.AVSession.Core 6739 6740**参数:** 6741 6742| 参数名 | 类型 | 必填 | 说明 | 6743| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- | 6744| type | string | 是 | 取消对应的监听事件,支持事件`'playbackStateChange'`。 | 6745| callback | (state: [AVPlaybackState](#avplaybackstate10)) => void | 否 | 回调函数,参数state是变化后的播放状态。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 6746 6747**错误码:** 6748 6749以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6750 6751| 错误码ID | 错误信息 | 6752| -------- | ---------------- | 6753| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 6754| 6600101 | Session service exception. | 6755| 6600103 | The session controller does not exist. | 6756 6757**示例:** 6758 6759```ts 6760avsessionController.off('playbackStateChange'); 6761``` 6762 6763### on('callMetadataChange')<sup>11+</sup> 6764 6765on(type: 'callMetadataChange', filter: Array\<keyof CallMetadata> | 'all', callback: Callback\<CallMetadata>): void; 6766 6767设置通话元数据变化的监听事件。 6768 6769**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6770 6771**系统能力:** SystemCapability.Multimedia.AVSession.Core 6772 6773**参数:** 6774 6775| 参数名 | 类型 | 必填 | 说明 | 6776| --------| -----------|-----|------------| 6777| type | string | 是 | 事件回调类型,支持事件`'callMetadataChange'`:当通话元数据变化时,触发该事件。 | 6778| filter | Array\<keyof [CallMetadata](#callmetadata11)\> | 'all' | 是 | 'all' 表示关注通话元数据所有字段变化;Array<keyof [CallMetadata](#callmetadata11)\> 表示关注Array中的字段变化。 | 6779| callback | Callback<[CallMetadata](#callmetadata11)\>\> | 是 | 回调函数,参数callmetadata是变化后的通话元数据。| 6780 6781**错误码:** 6782 6783以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6784 6785| 错误码ID | 错误信息 | 6786| -------- | ------------------------------ | 6787| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 6788| 6600101 | Session service exception. | 6789| 6600103 | The session controller does not exist. | 6790 6791**示例:** 6792 6793```ts 6794avsessionController.on('callMetadataChange', 'all', (callmetadata: avSession.CallMetadata) => { 6795 console.info(`on callMetadataChange state : ${callmetadata.name}`); 6796}); 6797 6798avsessionController.on('callMetadataChange', ['name'], (callmetadata: avSession.CallMetadata) => { 6799 console.info(`on callMetadataChange state : ${callmetadata.name}`); 6800}); 6801``` 6802 6803### off('callMetadataChange')<sup>11+</sup> 6804 6805off(type: 'callMetadataChange', callback?: Callback\<CallMetadata>): void; 6806 6807取消设置通话元数据变化的监听事件。 6808 6809**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6810 6811**系统能力:** SystemCapability.Multimedia.AVSession.Core 6812 6813**参数:** 6814 6815| 参数名 | 类型 | 必填 | 说明 | 6816| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- | 6817| type | string | 是 | 取消对应的监听事件,支持事件`'callMetadataChange'`。 | 6818| callback | Callback<[CallMetadata](#callmetadata11)\> | 否 | 回调函数,参数calldata是变化后的通话原数据。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 6819 6820**错误码:** 6821 6822以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6823 6824| 错误码ID | 错误信息 | 6825| -------- | ---------------- | 6826| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 6827| 6600101 | Session service exception. | 6828| 6600103 | The session controller does not exist. | 6829 6830**示例:** 6831 6832```ts 6833avsessionController.off('callMetadataChange'); 6834``` 6835 6836### on('callStateChange')<sup>11+</sup> 6837 6838on(type: 'callStateChange', filter: Array\<keyof AVCallState> | 'all', callback: Callback\<AVCallState>): void; 6839 6840设置通话状态变化的监听事件。 6841 6842**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6843 6844**系统能力:** SystemCapability.Multimedia.AVSession.Core 6845 6846**参数:** 6847 6848| 参数名 | 类型 | 必填 | 说明 | 6849| --------| -----------|-----|------------| 6850| type | string | 是 | 事件回调类型,支持事件`'callStateChange'`:当通话状态变化时,触发该事件。 | 6851| filter | Array<keyof [AVCallState](#avcallstate11)\> | 'all' | 是 | 'all' 表示关注通话状态所有字段变化;Array<keyof [AVCallState](#avcallstate11)\> 表示关注Array中的字段变化。 | 6852| callback | Callback<[AVCallState](#avcallstate11)\> | 是 | 回调函数,参数callstate是变化后的通话状态。| 6853 6854**错误码:** 6855 6856以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6857 6858| 错误码ID | 错误信息 | 6859| -------- | ------------------------------ | 6860| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 6861| 6600101 | Session service exception. | 6862| 6600103 | The session controller does not exist. | 6863 6864**示例:** 6865 6866```ts 6867avsessionController.on('callStateChange', 'all', (callstate: avSession.AVCallState) => { 6868 console.info(`on callStateChange state : ${callstate.state}`); 6869}); 6870 6871avsessionController.on('callStateChange', ['state'], (callstate: avSession.AVCallState) => { 6872 console.info(`on callStateChange state : ${callstate.state}`); 6873}); 6874``` 6875 6876### off('callStateChange')<sup>11+</sup> 6877 6878off(type: 'callStateChange', callback?: Callback\<AVCallState>): void; 6879 6880取消设置通话状态变化的监听事件。 6881 6882**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6883 6884**系统能力:** SystemCapability.Multimedia.AVSession.Core 6885 6886**参数:** 6887 6888| 参数名 | 类型 | 必填 | 说明 | 6889| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- | 6890| type | string | 是 | 取消对应的监听事件,支持事件`'callStateChange'`。 | 6891| callback | Callback<[AVCallState](#avcallstate11)\> | 否 | 回调函数,参数callstate是变化后的通话状态。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 6892 6893**错误码:** 6894 6895以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6896 6897| 错误码ID | 错误信息 | 6898| -------- | ---------------- | 6899| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 6900| 6600101 | Session service exception. | 6901| 6600103 | The session controller does not exist. | 6902 6903**示例:** 6904 6905```ts 6906avsessionController.off('callMetadataChange'); 6907``` 6908 6909### on('sessionDestroy')<sup>10+</sup> 6910 6911on(type: 'sessionDestroy', callback: () => void) 6912 6913会话销毁的监听事件。 6914 6915**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6916 6917**系统能力:** SystemCapability.Multimedia.AVSession.Core 6918 6919**参数:** 6920 6921| 参数名 | 类型 | 必填 | 说明 | 6922| -------- | ---------- | ---- | ------------------------------------------------------------ | 6923| type | string | 是 | 事件回调类型,支持事件`'sessionDestroy'`:当检测到会话销毁时,触发该事件)。 | 6924| callback | () => void | 是 | 回调函数。当监听事件注册成功,err为undefined,否则为错误对象。 | 6925 6926**错误码:** 6927 6928以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6929 6930| 错误码ID | 错误信息 | 6931| -------- | ------------------------------ | 6932| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 6933| 6600101 | Session service exception. | 6934| 6600103 | The session controller does not exist. | 6935 6936**示例:** 6937 6938```ts 6939avsessionController.on('sessionDestroy', () => { 6940 console.info('on sessionDestroy : SUCCESS '); 6941}); 6942``` 6943 6944### off('sessionDestroy')<sup>10+</sup> 6945 6946off(type: 'sessionDestroy', callback?: () => void) 6947 6948媒体控制器取消监听会话的销毁事件。 6949 6950**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6951 6952**系统能力:** SystemCapability.Multimedia.AVSession.Core 6953 6954**参数:** 6955 6956| 参数名 | 类型 | 必填 | 说明 | 6957| -------- | ---------- | ---- | ----------------------------------------------------- | 6958| type | string | 是 | 取消对应的监听事件,支持事件`'sessionDestroy'`。 | 6959| callback | () => void | 否 | 回调函数。当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 6960 6961**错误码:** 6962 6963以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6964 6965| 错误码ID | 错误信息 | 6966| -------- | ---------------- | 6967| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 6968| 6600101 | Session service exception. | 6969| 6600103 | The session controller does not exist. | 6970 6971**示例:** 6972 6973```ts 6974avsessionController.off('sessionDestroy'); 6975``` 6976 6977### on('activeStateChange')<sup>10+</sup> 6978 6979on(type: 'activeStateChange', callback: (isActive: boolean) => void) 6980 6981会话的激活状态的监听事件。 6982 6983**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 6984 6985**系统能力:** SystemCapability.Multimedia.AVSession.Core 6986 6987**参数:** 6988 6989| 参数名 | 类型 | 必填 | 说明 | 6990| -------- | --------------------------- | ---- | ------------------------------------------------------------ | 6991| type | string | 是 | 事件回调类型,支持事件`'activeStateChange'`:当检测到会话的激活状态发生改变时,触发该事件。 | 6992| callback | (isActive: boolean) => void | 是 | 回调函数。参数isActive表示会话是否被激活。true表示被激活,false表示禁用。 | 6993 6994**错误码:** 6995 6996以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 6997 6998| 错误码ID | 错误信息 | 6999| -------- | ----------------------------- | 7000| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7001| 6600101 | Session service exception. | 7002| 6600103 |The session controller does not exist. | 7003 7004**示例:** 7005 7006```ts 7007avsessionController.on('activeStateChange', (isActive: boolean) => { 7008 console.info(`on activeStateChange : SUCCESS : isActive ${isActive}`); 7009}); 7010``` 7011 7012### off('activeStateChange')<sup>10+</sup> 7013 7014off(type: 'activeStateChange', callback?: (isActive: boolean) => void) 7015 7016媒体控制器取消监听会话激活状态变化的事件。 7017 7018**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7019 7020**系统能力:** SystemCapability.Multimedia.AVSession.Core 7021 7022**参数:** 7023 7024| 参数名 | 类型 | 必填 | 说明 | 7025| -------- | --------------------------- | ---- | ----------------------------------------------------- | 7026| type | string | 是 | 取消对应的监听事件,支持事件`'activeStateChange'`。 | 7027| callback | (isActive: boolean) => void | 否 | 回调函数。参数isActive表示会话是否被激活。true表示被激活,false表示禁用。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 7028 7029**错误码:** 7030 7031以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7032 7033| 错误码ID | 错误信息 | 7034| -------- | ---------------- | 7035| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7036| 6600101 | Session service exception. | 7037| 6600103 | The session controller does not exist. | 7038 7039**示例:** 7040 7041```ts 7042avsessionController.off('activeStateChange'); 7043``` 7044 7045### on('validCommandChange')<sup>10+</sup> 7046 7047on(type: 'validCommandChange', callback: (commands: Array\<AVControlCommandType>) => void) 7048 7049会话支持的有效命令变化监听事件。 7050 7051**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7052 7053**系统能力:** SystemCapability.Multimedia.AVSession.Core 7054 7055**参数:** 7056 7057| 参数名 | 类型 | 必填 | 说明 | 7058| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 7059| type | string | 是 | 事件回调类型,支持事件`'validCommandChange'`:当检测到会话的合法命令发生改变时,触发该事件。 | 7060| callback | (commands: Array<[AVControlCommandType](#avcontrolcommandtype10)\>) => void | 是 | 回调函数。参数commands是有效命令的集合。 | 7061 7062**错误码:** 7063 7064以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7065 7066| 错误码ID | 错误信息 | 7067| -------- | ------------------------------ | 7068| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7069| 6600101 | Session service exception. | 7070| 6600103 | The session controller does not exist. | 7071 7072**示例:** 7073 7074```ts 7075avsessionController.on('validCommandChange', (validCommands: avSession.AVControlCommandType[]) => { 7076 console.info(`validCommandChange : SUCCESS : size : ${validCommands.length}`); 7077 console.info(`validCommandChange : SUCCESS : validCommands : ${validCommands.values()}`); 7078}); 7079``` 7080 7081### off('validCommandChange')<sup>10+</sup> 7082 7083off(type: 'validCommandChange', callback?: (commands: Array\<AVControlCommandType>) => void) 7084 7085媒体控制器取消监听会话有效命令变化的事件。 7086 7087**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7088 7089**系统能力:** SystemCapability.Multimedia.AVSession.Core 7090 7091**参数:** 7092 7093| 参数名 | 类型 | 必填 | 说明 | 7094| -------- | ------------------------------------------------------------ | ---- | -------------------------------------------------------- | 7095| type | string | 是 | 取消对应的监听事件,支持事件`'validCommandChange'`。 | 7096| callback | (commands: Array<[AVControlCommandType](#avcontrolcommandtype10)\>) => void | 否 | 回调函数。参数commands是有效命令的集合。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 7097 7098**错误码:** 7099 7100以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7101 7102| 错误码ID | 错误信息 | 7103| -------- | ---------------- | 7104| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7105| 6600101 | Session service exception. | 7106| 6600103 | The session controller does not exist. | 7107 7108**示例:** 7109 7110```ts 7111avsessionController.off('validCommandChange'); 7112``` 7113 7114### on('outputDeviceChange')<sup>10+</sup> 7115 7116on(type: 'outputDeviceChange', callback: (state: ConnectionState, device: OutputDeviceInfo) => void): void 7117 7118设置播放设备变化的监听事件。 7119 7120**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7121 7122**系统能力:** SystemCapability.Multimedia.AVSession.Core 7123 7124**参数:** 7125 7126| 参数名 | 类型 | 必填 | 说明 | 7127| -------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ | 7128| type | string | 是 | 事件回调类型,支持事件为`'outputDeviceChange'`:当播放设备变化时,触发该事件)。 | 7129| callback | (state: [ConnectionState](#connectionstate10), device: [OutputDeviceInfo](#outputdeviceinfo10)) => void | 是 | 回调函数,参数device是设备相关信息。 | 7130 7131**错误码:** 7132 7133以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7134 7135| 错误码ID | 错误信息 | 7136| -------- | ----------------------- | 7137| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7138| 6600101 | Session service exception. | 7139| 6600103 | The session controller does not exist. | 7140 7141**示例:** 7142 7143```ts 7144avsessionController.on('outputDeviceChange', (state: avSession.ConnectionState, device: avSession.OutputDeviceInfo) => { 7145 console.info(`on outputDeviceChange state: ${state}, device : ${device}`); 7146}); 7147``` 7148 7149### off('outputDeviceChange')<sup>10+</sup> 7150 7151off(type: 'outputDeviceChange', callback?: (state: ConnectionState, device: OutputDeviceInfo) => void): void 7152 7153媒体控制器取消监听分布式设备变化的事件。 7154 7155**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7156 7157**系统能力:** SystemCapability.Multimedia.AVSession.Core 7158 7159**参数:** 7160 7161| 参数名 | 类型 | 必填 | 说明 | 7162| -------- | ------------------------------------------------------- | ---- | ------------------------------------------------------ | 7163| type | string | 是 | 取消对应的监听事件,支持事件`'outputDeviceChange'`。 | 7164| callback | (state: [ConnectionState](#connectionstate10), device: [OutputDeviceInfo](#outputdeviceinfo10)) => void | 否 | 回调函数,参数device是设备相关信息。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 7165 7166**错误码:** 7167 7168以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7169 7170| 错误码ID | 错误信息 | 7171| -------- | ---------------- | 7172| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7173| 6600101 | Session service exception. | 7174| 6600103 | The session controller does not exist. | 7175 7176**示例:** 7177 7178```ts 7179avsessionController.off('outputDeviceChange'); 7180``` 7181 7182### on('sessionEvent')<sup>10+</sup> 7183 7184on(type: 'sessionEvent', callback: (sessionEvent: string, args: {[key:string]: Object}) => void): void 7185 7186媒体控制器设置会话自定义事件变化的监听器。 7187 7188**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7189 7190**系统能力:** SystemCapability.Multimedia.AVSession.Core 7191 7192**参数:** 7193 7194| 参数名 | 类型 | 必填 | 说明 | 7195| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 7196| type | string | 是 | 事件回调类型,支持事件`'sessionEvent'`:当会话事件变化时,触发该事件。 | 7197| callback | (sessionEvent: string, args: {[key:string]: object}) => void | 是 | 回调函数,sessionEvent为变化的会话事件名,args为事件的参数。 | 7198 7199**错误码:** 7200 7201以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7202 7203| 错误码ID | 错误信息 | 7204| -------- | ------------------------------ | 7205| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7206| 6600101 | Session service exception. | 7207| 6600103 | The session controller does not exist. | 7208 7209**示例:** 7210 7211```ts 7212import { BusinessError } from '@kit.BasicServicesKit'; 7213 7214let avSessionController: avSession.AVSessionController | undefined = undefined; 7215let currentAVSession: avSession.AVSession | undefined = undefined; 7216let tag = "createNewSession"; 7217let context: Context = getContext(this); 7218 7219avSession.createAVSession(context, tag, "audio", (err: BusinessError, data: avSession.AVSession) => { 7220 if (err) { 7221 console.error(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`); 7222 } else { 7223 currentAVSession = data; 7224 } 7225}); 7226if (currentAVSession !== undefined) { 7227 avSession.createController((currentAVSession as avSession.AVSession).sessionId).then((controller: avSession.AVSessionController) => { 7228 avSessionController = controller; 7229 }).catch((err: BusinessError) => { 7230 console.error(`CreateController BusinessError: code: ${err.code}, message: ${err.message}`); 7231 }); 7232} 7233 7234if (avSessionController !== undefined) { 7235 (avSessionController as avSession.AVSessionController).on('sessionEvent', (sessionEvent, args) => { 7236 console.info(`OnSessionEvent, sessionEvent is ${sessionEvent}, args: ${JSON.stringify(args)}`); 7237 }); 7238} 7239``` 7240 7241### off('sessionEvent')<sup>10+</sup> 7242 7243off(type: 'sessionEvent', callback?: (sessionEvent: string, args: {[key:string]: Object}) => void): void 7244 7245媒体控制器取消监听会话事件的变化通知。 7246 7247**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7248 7249**系统能力:** SystemCapability.Multimedia.AVSession.Core 7250 7251**参数:** 7252 7253| 参数名 | 类型 | 必填 | 说明 | 7254| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- | 7255| type | string | 是 | 取消对应的监听事件,支持事件`'sessionEvent'`。 | 7256| callback | (sessionEvent: string, args: {[key:string]: Object}) => void | 否 | 回调函数,参数sessionEvent是变化的事件名,args为事件的参数。<br>该参数为可选参数,若不填写该参数,则认为取消所有对sessionEvent事件的监听。 | 7257 7258**错误码:** 7259 7260以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7261 7262| 错误码ID | 错误信息 | 7263| -------- | ---------------- | 7264| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7265| 6600101 | Session service exception. | 7266| 6600103 | The session controller does not exist. | 7267 7268**示例:** 7269 7270```ts 7271avsessionController.off('sessionEvent'); 7272``` 7273 7274### on('queueItemsChange')<sup>10+</sup> 7275 7276on(type: 'queueItemsChange', callback: (items: Array<[AVQueueItem](#avqueueitem10)\>) => void): void 7277 7278媒体控制器设置会话自定义播放列表变化的监听器。 7279 7280**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7281 7282**系统能力:** SystemCapability.Multimedia.AVSession.Core 7283 7284**参数:** 7285 7286| 参数名 | 类型 | 必填 | 说明 | 7287| -------- | ----------------------------------------------------- | ---- | ---------------------------------------------------------------------------- | 7288| type | string | 是 | 事件回调类型,支持事件`'queueItemsChange'`:当session修改播放列表时,触发该事件。 | 7289| callback | (items: Array<[AVQueueItem](#avqueueitem10)\>) => void | 是 | 回调函数,items为变化的播放列表。 | 7290 7291**错误码:** 7292 7293以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7294 7295| 错误码ID | 错误信息 | 7296| -------- | ------------------------------ | 7297| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7298| 6600101 | Session service exception. | 7299| 6600103 | The session controller does not exist. | 7300 7301**示例:** 7302 7303```ts 7304avsessionController.on('queueItemsChange', (items: avSession.AVQueueItem[]) => { 7305 console.info(`OnQueueItemsChange, items length is ${items.length}`); 7306}); 7307``` 7308 7309### off('queueItemsChange')<sup>10+</sup> 7310 7311off(type: 'queueItemsChange', callback?: (items: Array<[AVQueueItem](#avqueueitem10)\>) => void): void 7312 7313媒体控制器取消监听播放列表变化的事件。 7314 7315**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7316 7317**系统能力:** SystemCapability.Multimedia.AVSession.Core 7318 7319**参数:** 7320 7321| 参数名 | 类型 | 必填 | 说明 | 7322| -------- | ---------------------------------------------------- | ---- | --------------------------------------------------------------------------------------------------- | 7323| type | string | 是 | 取消对应的监听事件,支持事件`'queueItemsChange'`。 | 7324| callback | (items: Array<[AVQueueItem](#avqueueitem10)\>) => void | 否 | 回调函数,参数items是变化的播放列表。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 7325 7326**错误码:** 7327 7328以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7329 7330| 错误码ID | 错误信息 | 7331| -------- | ---------------- | 7332| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7333| 6600101 | Session service exception. | 7334| 6600103 | The session controller does not exist. | 7335 7336**示例:** 7337 7338```ts 7339avsessionController.off('queueItemsChange'); 7340``` 7341 7342### on('queueTitleChange')<sup>10+</sup> 7343 7344on(type: 'queueTitleChange', callback: (title: string) => void): void 7345 7346媒体控制器设置会话自定义播放列表的名称变化的监听器。 7347 7348**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7349 7350**系统能力:** SystemCapability.Multimedia.AVSession.Core 7351 7352**参数:** 7353 7354| 参数名 | 类型 | 必填 | 说明 | 7355| -------- | ----------------------- | ---- | ------------------------------------------------------------------------------- | 7356| type | string | 是 | 事件回调类型,支持事件`'queueTitleChange'`:当session修改播放列表名称时,触发该事件。 | 7357| callback | (title: string) => void | 是 | 回调函数,title为变化的播放列表名称。 | 7358 7359**错误码:** 7360 7361以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7362 7363| 错误码ID | 错误信息 | 7364| -------- | ------------------------------ | 7365| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7366| 6600101 | Session service exception. | 7367| 6600103 | The session controller does not exist. | 7368 7369**示例:** 7370 7371```ts 7372avsessionController.on('queueTitleChange', (title: string) => { 7373 console.info(`queueTitleChange, title is ${title}`); 7374}); 7375``` 7376 7377### off('queueTitleChange')<sup>10+</sup> 7378 7379off(type: 'queueTitleChange', callback?: (title: string) => void): void 7380 7381媒体控制器取消监听播放列表名称变化的事件。 7382 7383**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7384 7385**系统能力:** SystemCapability.Multimedia.AVSession.Core 7386 7387**参数:** 7388 7389| 参数名 | 类型 | 必填 | 说明 | 7390| -------- | ----------------------- | ---- | ------------------------------------------------------------------------------------------------------- | 7391| type | string | 是 | 取消对应的监听事件,支持事件`'queueTitleChange'`。 | 7392| callback | (title: string) => void | 否 | 回调函数,参数items是变化的播放列表名称。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 7393 7394**错误码:** 7395 7396以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7397 7398| 错误码ID | 错误信息 | 7399| -------- | ---------------- | 7400| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7401| 6600101 | Session service exception. | 7402| 6600103 | The session controller does not exist. | 7403 7404**示例:** 7405 7406```ts 7407avsessionController.off('queueTitleChange'); 7408``` 7409 7410### on('extrasChange')<sup>10+</sup> 7411 7412on(type: 'extrasChange', callback: (extras: {[key:string]: Object}) => void): void 7413 7414媒体控制器设置自定义媒体数据包事件变化的监听器。 7415 7416**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7417 7418**系统能力:** SystemCapability.Multimedia.AVSession.Core 7419 7420**参数:** 7421 7422| 参数名 | 类型 | 必填 | 说明 | 7423| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 7424| type | string | 是 | 事件回调类型,支持事件`'extrasChange'`:当媒体提供方设置自定义媒体数据包时,触发该事件。 | 7425| callback | (extras: {[key:string]: object}) => void | 是 | 回调函数,extras为媒体提供方新设置的自定义媒体数据包,该自定义媒体数据包与dispatchSessionEvent方法设置的数据包完全一致。 | 7426 7427**错误码:** 7428 7429以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7430 7431| 错误码ID | 错误信息 | 7432| -------- | ------------------------------ | 7433| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7434| 6600101 | Session service exception. | 7435| 6600103 | The session controller does not exist. | 7436 7437**示例:** 7438 7439```ts 7440import { BusinessError } from '@kit.BasicServicesKit'; 7441 7442let avSessionController: avSession.AVSessionController | undefined = undefined; 7443let currentAVSession: avSession.AVSession | undefined = undefined; 7444let tag = "createNewSession"; 7445let context: Context = getContext(this); 7446 7447avSession.createAVSession(context, tag, "audio", (err: BusinessError, data: avSession.AVSession) => { 7448 if (err) { 7449 console.error(`CreateAVSession BusinessError: code: ${err.code}, message: ${err.message}`); 7450 } else { 7451 currentAVSession = data; 7452 } 7453}); 7454if (currentAVSession !== undefined) { 7455 avSession.createController((currentAVSession as avSession.AVSession).sessionId).then((controller: avSession.AVSessionController) => { 7456 avSessionController = controller; 7457 }).catch((err: BusinessError) => { 7458 console.error(`CreateController BusinessError: code: ${err.code}, message: ${err.message}`); 7459 }); 7460} 7461 7462if (avSessionController !== undefined) { 7463 (avSessionController as avSession.AVSessionController).on('extrasChange', (extras) => { 7464 console.info(`Caught extrasChange event,the new extra is: ${JSON.stringify(extras)}`); 7465 }); 7466} 7467``` 7468 7469### off('extrasChange')<sup>10+</sup> 7470 7471off(type: 'extrasChange', callback?: (extras: {[key:string]: Object}) => void): void 7472 7473媒体控制器取消监听自定义媒体数据包变化事件。 7474 7475**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7476 7477**系统能力:** SystemCapability.Multimedia.AVSession.Core 7478 7479**参数:** 7480 7481| 参数名 | 类型 | 必填 | 说明 | 7482| -------- | ----------------------- | ---- | ------------------------------------------------------------------------------------------------------- | 7483| type | string | 是 | 取消对应的监听事件,支持事件`'extrasChange'`。 | 7484| callback | ({[key:string]: Object}) => void | 否 | 注册监听事件时的回调函数。<br>该参数为可选参数,若不填写该参数,则认为取消会话所有与此事件相关的监听。 | 7485 7486**错误码:** 7487 7488以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7489 7490| 错误码ID | 错误信息 | 7491| -------- | ---------------- | 7492| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 7493| 6600101 | Session service exception. | 7494| 6600103 | The session controller does not exist. | 7495 7496**示例:** 7497 7498```ts 7499avsessionController.off('extrasChange'); 7500``` 7501 7502### getAVPlaybackStateSync<sup>10+</sup> 7503 7504getAVPlaybackStateSync(): AVPlaybackState; 7505 7506使用同步方法获取当前会话的播放状态。 7507 7508**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7509 7510**系统能力:** SystemCapability.Multimedia.AVSession.Core 7511 7512**返回值:** 7513 7514| 类型 | 说明 | 7515| --------- | ------------------------------------------------------------ | 7516| [AVPlaybackState](#avplaybackstate10) | 当前会话的播放状态。 | 7517 7518**错误码:** 7519 7520以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7521 7522| 错误码ID | 错误信息 | 7523| -------- | ---------------------------------------- | 7524| 6600101 | Session service exception. | 7525| 6600102 | The session does not exist. | 7526| 6600103 | The session controller does not exist. | 7527 7528**示例:** 7529 7530```ts 7531import { BusinessError } from '@kit.BasicServicesKit'; 7532 7533try { 7534 let playbackState: avSession.AVPlaybackState = avsessionController.getAVPlaybackStateSync(); 7535} catch (err) { 7536 let error = err as BusinessError; 7537 console.info(`getAVPlaybackStateSync error, error code: ${error.code}, error message: ${error.message}`); 7538} 7539``` 7540 7541### getAVMetadataSync<sup>10+</sup> 7542 7543getAVMetadataSync(): AVMetadata 7544 7545使用同步方法获取会话元数据。 7546 7547**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7548 7549**系统能力:** SystemCapability.Multimedia.AVSession.Core 7550 7551**返回值:** 7552 7553| 类型 | 说明 | 7554| ----------------------------------- | ----------------------------- | 7555| [AVMetadata](#avmetadata10) | 会话元数据。 | 7556 7557**错误码:** 7558 7559以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7560 7561| 错误码ID | 错误信息 | 7562| -------- | ---------------------------------------- | 7563| 6600101 | Session service exception. | 7564| 6600102 | The session does not exist. | 7565| 6600103 | The session controller does not exist. | 7566 7567**示例:** 7568```ts 7569import { BusinessError } from '@kit.BasicServicesKit'; 7570 7571try { 7572 let metaData: avSession.AVMetadata = avsessionController.getAVMetadataSync(); 7573} catch (err) { 7574 let error = err as BusinessError; 7575 console.info(`getAVMetadataSync error, error code: ${error.code}, error message: ${error.message}`); 7576} 7577``` 7578 7579### getAVCallState<sup>11+</sup> 7580 7581getAVCallState(): Promise\<AVCallState> 7582 7583获取通话状态数据。结果通过Promise异步回调方式返回。 7584 7585**系统能力:** SystemCapability.Multimedia.AVSession.Core 7586 7587**返回值:** 7588 7589| 类型 | 说明 | 7590| ----------------------------------- | ----------------------------- | 7591| Promise<[AVCallState](#avcallstate11)\> | Promise对象,返回通话状态。 | 7592 7593**错误码:** 7594 7595以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7596 7597| 错误码ID | 错误信息 | 7598| -------- | ---------------------------------------- | 7599| 6600101 | Session service exception. | 7600| 6600102 | The session does not exist. | 7601| 6600103 | The session controller does not exist. | 7602 7603**示例:** 7604 7605```ts 7606import { BusinessError } from '@kit.BasicServicesKit'; 7607 7608avsessionController.getAVCallState().then((callstate: avSession.AVCallState) => { 7609 console.info(`getAVCallState : SUCCESS : state : ${callstate.state}`); 7610}).catch((err: BusinessError) => { 7611 console.error(`getAVCallState BusinessError: code: ${err.code}, message: ${err.message}`); 7612}); 7613``` 7614 7615### getAVCallState<sup>11+</sup> 7616 7617getAVCallState(callback: AsyncCallback\<AVCallState>): void 7618 7619获取通话状态数据。结果通过callback异步回调方式返回。 7620 7621**系统能力:** SystemCapability.Multimedia.AVSession.Core 7622 7623**参数:** 7624 7625| 参数名 | 类型 | 必填 | 说明 | 7626| -------- | ----------------------------------------- | ---- | -------------------------- | 7627| callback | AsyncCallback<[AVCallState](#avcallstate11)\> | 是 | 回调函数,返回通话状态。 | 7628 7629**错误码:** 7630 7631以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7632 7633| 错误码ID | 错误信息 | 7634| -------- | ---------------------------------------- | 7635| 6600101 | Session service exception. | 7636| 6600102 | The session does not exist. | 7637| 6600103 | The session controller does not exist. | 7638 7639**示例:** 7640 7641```ts 7642import { BusinessError } from '@kit.BasicServicesKit'; 7643 7644avsessionController.getAVCallState((err: BusinessError, callstate: avSession.AVCallState) => { 7645 if (err) { 7646 console.error(`getAVCallState BusinessError: code: ${err.code}, message: ${err.message}`); 7647 } else { 7648 console.info(`getAVCallState : SUCCESS : state : ${callstate.state}`); 7649 } 7650}); 7651``` 7652 7653### getCallMetadata<sup>11+</sup> 7654 7655getCallMetadata(): Promise\<CallMetadata> 7656 7657获取通话会话的元数据。结果通过Promise异步回调方式返回。 7658 7659**系统能力:** SystemCapability.Multimedia.AVSession.Core 7660 7661**返回值:** 7662 7663| 类型 | 说明 | 7664| ----------------------------------- | ----------------------------- | 7665| Promise<[CallMetadata](#callmetadata11)\> | Promise对象,返回会话元数据。 | 7666 7667**错误码:** 7668 7669以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7670 7671| 错误码ID | 错误信息 | 7672| -------- | ---------------------------------------- | 7673| 6600101 | Session service exception. | 7674| 6600102 | The session does not exist. | 7675| 6600103 | The session controller does not exist. | 7676 7677**示例:** 7678 7679```ts 7680import { BusinessError } from '@kit.BasicServicesKit'; 7681 7682avsessionController.getCallMetadata().then((calldata: avSession.CallMetadata) => { 7683 console.info(`getCallMetadata : SUCCESS : name : ${calldata.name}`); 7684}).catch((err: BusinessError) => { 7685 console.error(`getCallMetadata BusinessError: code: ${err.code}, message: ${err.message}`); 7686}); 7687``` 7688 7689### getCallMetadata<sup>11+</sup> 7690 7691getCallMetadata(callback: AsyncCallback\<CallMetadata>): void 7692 7693获取通话会话的元数据。结果通过callback异步回调方式返回。 7694 7695**系统能力:** SystemCapability.Multimedia.AVSession.Core 7696 7697**参数:** 7698 7699| 参数名 | 类型 | 必填 | 说明 | 7700| -------- | ----------------------------------------- | ---- | -------------------------- | 7701| callback | AsyncCallback<[CallMetadata](#callmetadata11)\> | 是 | 回调函数,返回会话元数据。 | 7702 7703**错误码:** 7704 7705以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7706 7707| 错误码ID | 错误信息 | 7708| -------- | ---------------------------------------- | 7709| 6600101 | Session service exception. | 7710| 6600102 | The session does not exist. | 7711| 6600103 | The session controller does not exist. | 7712 7713**示例:** 7714 7715```ts 7716import { BusinessError } from '@kit.BasicServicesKit'; 7717 7718avsessionController.getCallMetadata((err: BusinessError, calldata: avSession.CallMetadata) => { 7719 if (err) { 7720 console.error(`getCallMetadata BusinessError: code: ${err.code}, message: ${err.message}`); 7721 } else { 7722 console.info(`getCallMetadata : SUCCESS : name : ${calldata.name}`); 7723 } 7724}); 7725``` 7726 7727### getAVQueueTitleSync<sup>10+</sup> 7728 7729getAVQueueTitleSync(): string 7730 7731使用同步方法获取当前会话播放列表的名称。 7732 7733**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7734 7735**系统能力:** SystemCapability.Multimedia.AVSession.Core 7736 7737**返回值:** 7738 7739| 类型 | 说明 | 7740| ---------------- | ----------------------------- | 7741| string | 当前会话播放列表名称。 | 7742 7743**错误码:** 7744 7745以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7746 7747| 错误码ID | 错误信息 | 7748| -------- | ---------------------------------------- | 7749| 6600101 | Session service exception. | 7750| 6600102 | The session does not exist. | 7751| 6600103 | The session controller does not exist. | 7752 7753**示例:** 7754 7755```ts 7756import { BusinessError } from '@kit.BasicServicesKit'; 7757 7758try { 7759 let currentQueueTitle: string = avsessionController.getAVQueueTitleSync(); 7760} catch (err) { 7761 let error = err as BusinessError; 7762 console.error(`getAVQueueTitleSync error, error code: ${error.code}, error message: ${error.message}`); 7763} 7764``` 7765 7766### getAVQueueItemsSync<sup>10+</sup> 7767 7768getAVQueueItemsSync(): Array\<AVQueueItem\> 7769 7770使用同步方法获取当前会话播放列表相关信息。 7771 7772**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7773 7774**系统能力:** SystemCapability.Multimedia.AVSession.Core 7775 7776**返回值:** 7777 7778| 类型 | 说明 | 7779| --------------------------------------------- | ----------------------------- | 7780| Array<[AVQueueItem](#avqueueitem10)\> | 当前会话播放列表队列。 | 7781 7782**错误码:** 7783 7784以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7785 7786| 错误码ID | 错误信息 | 7787| -------- | ---------------------------------------- | 7788| 6600101 | Session service exception. | 7789| 6600102 | The session does not exist. | 7790| 6600103 | The session controller does not exist. | 7791 7792**示例:** 7793 7794```ts 7795import { BusinessError } from '@kit.BasicServicesKit'; 7796 7797try { 7798 let currentQueueItems: Array<avSession.AVQueueItem> = avsessionController.getAVQueueItemsSync(); 7799} catch (err) { 7800 let error = err as BusinessError; 7801 console.error(`getAVQueueItemsSync error, error code: ${error.code}, error message: ${error.message}`); 7802} 7803``` 7804 7805### getOutputDeviceSync<sup>10+</sup> 7806 7807getOutputDeviceSync(): OutputDeviceInfo 7808 7809使用同步方法获取当前输出设备信息。 7810 7811**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7812 7813**系统能力:** SystemCapability.Multimedia.AVSession.Core 7814 7815**返回值:** 7816 7817| 类型 | 说明 | 7818| ----------------------------------------------- | --------------------------------- | 7819| [OutputDeviceInfo](#outputdeviceinfo10) | 当前输出设备信息。 | 7820 7821**错误码:** 7822 7823以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7824 7825| 错误码ID | 错误信息 | 7826| -------- | ---------------------------------------- | 7827| 6600101 | Session service exception. | 7828| 6600103 | The session controller does not exist. | 7829 7830**示例:** 7831 7832```ts 7833import { BusinessError } from '@kit.BasicServicesKit'; 7834 7835try { 7836 let currentOutputDevice: avSession.OutputDeviceInfo = avsessionController.getOutputDeviceSync(); 7837} catch (err) { 7838 let error = err as BusinessError; 7839 console.error(`getOutputDeviceSync error, error code: ${error.code}, error message: ${error.message}`); 7840} 7841``` 7842 7843### isActiveSync<sup>10+</sup> 7844 7845isActiveSync(): boolean 7846 7847使用同步方法判断会话是否被激活。 7848 7849**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7850 7851**系统能力:** SystemCapability.Multimedia.AVSession.Core 7852 7853**返回值:** 7854 7855| 类型 | 说明 | 7856| ----------------- | ------------------------------------------------------------ | 7857| boolean | 会话是否为激活状态,true表示被激活,false表示禁用。 | 7858 7859**错误码:** 7860 7861以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7862 7863| 错误码ID | 错误信息 | 7864| -------- | ---------------------------------------- | 7865| 6600101 | Session service exception. | 7866| 6600102 | The session does not exist. | 7867| 6600103 | The session controller does not exist. | 7868 7869**示例:** 7870 7871```ts 7872import { BusinessError } from '@kit.BasicServicesKit'; 7873 7874try { 7875 let isActive: boolean = avsessionController.isActiveSync(); 7876} catch (err) { 7877 let error = err as BusinessError; 7878 console.error(`isActiveSync error, error code: ${error.code}, error message: ${error.message}`); 7879} 7880``` 7881 7882### getValidCommandsSync<sup>10+</sup> 7883 7884getValidCommandsSync(): Array\<AVControlCommandType\> 7885 7886使用同步方法获取会话支持的有效命令。 7887 7888**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7889 7890**系统能力:** SystemCapability.Multimedia.AVSession.Core 7891 7892**返回值:** 7893 7894| 类型 | 说明 | 7895| ------------------------------------------------------------ | --------------------------------- | 7896| Array<[AVControlCommandType](#avcontrolcommandtype10)\> | 会话支持的有效命令的集合。 | 7897 7898**错误码:** 7899 7900以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 7901 7902| 错误码ID | 错误信息 | 7903| -------- | ---------------------------------------- | 7904| 6600101 | Session service exception. | 7905| 6600102 | The session does not exist. | 7906| 6600103 | The session controller does not exist. | 7907 7908**示例:** 7909 7910```ts 7911import { BusinessError } from '@kit.BasicServicesKit'; 7912 7913try { 7914 let validCommands: Array<avSession.AVControlCommandType> = avsessionController.getValidCommandsSync(); 7915} catch (err) { 7916 let error = err as BusinessError; 7917 console.error(`getValidCommandsSync error, error code: ${error.code}, error message: ${error.message}`); 7918} 7919``` 7920 7921## AVControlCommandType<sup>10+</sup> 7922 7923type AVControlCommandType = 'play' | 'pause' | 'stop' | 'playNext' | 'playPrevious' | 'fastForward' | 'rewind' | 7924 'seek' | 'setSpeed' | 'setLoopMode' | 'toggleFavorite' | 'playFromAssetId' | 'answer' | 'hangUp' | 'toggleCallMute' 7925 7926会话可传递的命令。 7927 7928该类型可取的值为下表字符串的并集。 7929 7930**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7931 7932**系统能力:** SystemCapability.Multimedia.AVSession.Core 7933 7934| 类型 | 说明 | 7935| ---------------- | ------------ | 7936| 'play' | 播放 | 7937| 'pause' | 暂停 | 7938| 'stop' | 停止 | 7939| 'playNext' | 下一首 | 7940| 'playPrevious' | 上一首 | 7941| 'fastForward' | 快进 | 7942| 'rewind' | 快退 | 7943| 'seek' | 跳转某一节点 | 7944| 'setSpeed' | 设置播放倍速 | 7945| 'setLoopMode' | 设置循环模式 | 7946| 'toggleFavorite' | 是否收藏 | 7947| 'playFromAssetId'| 播放指定的assetid | 7948|'answer' | 接听 | 7949| 'hangUp' | 挂断 | 7950|'toggleCallMute' | 设置通话静音状态 | 7951 7952## AVControlCommand<sup>10+</sup> 7953 7954会话接受的命令的对象描述。 7955 7956**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 7957 7958**系统能力:** SystemCapability.Multimedia.AVSession.Core 7959 7960| 名称 | 类型 | 必填 | 说明 | 7961| --------- | ------------------------------------------------- | ---- | -------------- | 7962| command | [AVControlCommandType](#avcontrolcommandtype10) | 是 | 命令 | 7963| parameter | [LoopMode](#loopmode10) | string | number | 否 | 命令对应的参数 | 7964 7965 7966## AVCastPickerOptions<sup>14+</sup> 7967 7968拉起的投播半模态窗口相关属性。 7969 7970**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 7971 7972**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 7973 7974| 名称 | 类型 | 必填 | 说明 | 7975| --------------- |-------------------------| ---- |---------------------------------------------------------------------| 7976| sessionType | [AVSessionType](#avsessiontype10) | 否 | 会话类型,默认值为'audio'。<br>当前仅支持'audio'、'video'会话类型。如果传入'voice_call'、'video_call',将按照传入默认值'audio'处理。 | 7977 7978## AVCastPickerHelper<sup>14+</sup> 7979 7980投播半模态对象,可拉起半模态窗口,选择投播设备。在使用前,需要创建AVCastPickerHelper实例。 7981 7982**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 7983 7984**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 7985 7986### constructor<sup>14+</sup> 7987 7988constructor(context: Context) 7989 7990创建AVCastPickerHelper对象,获取context参考[getContext](../apis-arkui/js-apis-getContext.md)。 7991 7992**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 7993 7994**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 7995 7996**参数:** 7997 7998| 参数名 | 类型 | 必填 | 说明 | 7999| --------- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ | 8000| context | Context | 是 | 应用上下文(仅支持[UIAbilityContext](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md))。 | 8001 8002**错误码:** 8003 8004以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 8005 8006| 错误码ID | 错误信息 | 8007| -------- | ---------------------------------------- | 8008| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 8009| 6600101 | Session service exception. | 8010 8011**示例:** 8012 8013```ts 8014import { common } from '@kit.AbilityKit'; 8015import { avSession } from '@kit.AVSessionKit'; 8016@Entry 8017@Component 8018struct Index { 8019 @State message: string = 'hello world'; 8020 8021 build() { 8022 Row() { 8023 Column() { 8024 Text(this.message) 8025 .fontSize(40) 8026 .fontWeight(FontWeight.Bold) 8027 .onClick(()=>{ 8028 let context = getContext(this) as common.Context; 8029 let avCastPicker = new avSession.AVCastPickerHelper(context); 8030 }) 8031 } 8032 .width('100%') 8033 } 8034 .height('100%') 8035 } 8036} 8037``` 8038 8039### select<sup>14+</sup> 8040 8041select(options?: AVCastPickerOptions): Promise\<void> 8042 8043通过选择模式拉起AVCastPicker界面,用户可以选择投播设备。接口采用Promise异步返回形式,传入可选参数AVCastPickerOptions对象,无返回值。 8044 8045**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 8046 8047**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 8048 8049**参数:** 8050 8051| 参数名 | 类型 | 必填 | 说明 | 8052| --------- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ | 8053| options | [AVCastPickerOptions](#avcastpickeroptions14) | 否 | AVCastPicker选择选项。无此参数时,以AVCastPickerOptions默认值拉起。 | 8054 8055**返回值:** 8056 8057| 类型 | 说明 | 8058| -------------- | ----------------------------- | 8059| Promise\<void> | Promise对象。当命令发送成功,无返回结果,否则返回错误对象。 | 8060 8061**错误码:** 8062 8063以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 8064 8065| 错误码ID | 错误信息 | 8066| -------- | ---------------------------------------- | 8067| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 8068 8069**示例:** 8070 8071```ts 8072import { common } from '@kit.AbilityKit'; 8073import { BusinessError } from '@kit.BasicServicesKit'; 8074 8075async function avCastPicker(context: common.Context) { 8076 let avCastPickerOptions : avSession.AVCastPickerOptions = { 8077 sessionType : 'video', 8078 } 8079 let avCastPicker = new avSession.AVCastPickerHelper(context); 8080 avCastPicker.select(avCastPickerOptions).then(() => { 8081 console.info('select successfully'); 8082 }).catch((err: BusinessError) => { 8083 console.error(`AVCastPicker.select failed with err: ${err.code}, ${err.message}`); 8084 }); 8085} 8086``` 8087### on('pickerStateChange')<sup>14+</sup> 8088 8089on(type: 'pickerStateChange', callback: Callback<AVCastPickerState\>) : void 8090 8091设置半模态窗口变化的监听事件。 8092 8093**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 8094 8095**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 8096 8097**参数:** 8098 8099| 参数名 | 类型 | 必填 | 说明 | 8100| --------| -----------|-----|------------| 8101| type | string | 是 | 事件回调类型,支持事件`'pickerStateChange'`:当半模态窗口变化时,触发该事件。 | 8102| callback | Callback\<[AVCastPickerState](js-apis-avCastPickerParam.md#avcastpickerstate11)> | 是 | 回调函数,参数state是变化后的半模态窗口状态。| 8103 8104**错误码:** 8105 8106以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 8107 8108| 错误码ID | 错误信息 | 8109| -------- | ---------------------------------------- | 8110| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 8111| 6600101 | Session service exception. | 8112 8113**示例:** 8114 8115```ts 8116import { common } from '@kit.AbilityKit'; 8117import { AVCastPickerState } from '@kit.AVSessionKit'; 8118 8119async function onPickerStateChange(context: common.Context) { 8120 let avCastPicker = new avSession.AVCastPickerHelper(context); 8121 avCastPicker.on('pickerStateChange', (state: AVCastPickerState) => { 8122 console.info(`picker state change : ${state}`); 8123 }); 8124} 8125``` 8126 8127### off('pickerStateChange')<sup>14+</sup> 8128 8129off(type: 'pickerStateChange', callback?: Callback<AVCastPickerState\>) : void 8130 8131取消半模态窗口变化的监听事件,关闭后,不再进行该事件回调。 8132 8133**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 8134 8135**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 8136 8137**参数:** 8138 8139| 参数名 | 类型 | 必填 | 说明 | 8140| -------- | ------------------------------------------------ | ---- | ------------------------------------------------------ | 8141| type | string | 是 | 取消对应的监听事件,支持事件`'pickerStateChange'`。 | 8142| callback | Callback\<[AVCastPickerState](js-apis-avCastPickerParam.md#avcastpickerstate11)> | 否 | 回调函数,参数state是变化后的半模态窗口状态。<br>当监听事件取消成功,err为undefined,否则返回错误对象。<br>该参数为可选参数,若不填写该参数,则认为取消所有相关会话的事件监听。 | 8143 8144**错误码:** 8145 8146以下错误码的详细介绍请参见[媒体会话管理错误码](errorcode-avsession.md)。 8147 8148| 错误码ID | 错误信息 | 8149| -------- | ---------------------------------------- | 8150| 401 | parameter check failed. 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | 8151| 6600101 | Session service exception. | 8152 8153**示例:** 8154 8155```ts 8156import { common } from '@kit.AbilityKit'; 8157 8158async function onPickerStateChange(context: common.Context) { 8159 let avCastPicker = new avSession.AVCastPickerHelper(context); 8160 avCastPicker.off('pickerStateChange'); 8161} 8162``` 8163 8164## AVSessionErrorCode<sup>10+</sup> 8165 8166会话发生错误时的错误码。 8167 8168| 名称 | 值 | 说明 | 8169| -------------------------------------- | ------- | ------------------------------- | 8170| ERR_CODE_SERVICE_EXCEPTION | 6600101 | 会话服务端异常。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 <br>**系统能力:** SystemCapability.Multimedia.AVSession.Core| 8171| ERR_CODE_SESSION_NOT_EXIST | 6600102 | 会话不存在。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 <br>**系统能力:** SystemCapability.Multimedia.AVSession.Core | 8172| ERR_CODE_CONTROLLER_NOT_EXIST | 6600103 | 会话控制器不存在。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.Core | 8173| ERR_CODE_REMOTE_CONNECTION_ERR | 6600104 | 远端会话连接失败。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.Core| 8174| ERR_CODE_COMMAND_INVALID | 6600105 | 无效会话命令。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 <br>**系统能力:** SystemCapability.Multimedia.AVSession.Core| 8175| ERR_CODE_SESSION_INACTIVE | 6600106 | 会话未激活。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.Core | 8176| ERR_CODE_MESSAGE_OVERLOAD | 6600107 | 命令&消息过载。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.Core | 8177| ERR_CODE_DEVICE_CONNECTION_FAILED | 6600108 | 设备连接失败。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.Core | 8178| ERR_CODE_REMOTE_CONNECTION_NOT_EXIST | 6600109 | 远端会话不存在。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.Core | 8179| ERR_CODE_CAST_CONTROL_UNSPECIFIED<sup>13+</sup> | 6611000 | 未被定义的投播错误码。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8180| ERR_CODE_CAST_CONTROL_REMOTE_ERROR<sup>13+</sup> | 6611001 | 远端播放器中发生不明错误。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8181| ERR_CODE_CAST_CONTROL_BEHIND_LIVE_WINDOW<sup>13+</sup> | 6611002 | 播放出现延迟。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8182| ERR_CODE_CAST_CONTROL_TIMEOUT<sup>13+</sup> | 6611003 | 投播控制进程超时。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8183| ERR_CODE_CAST_CONTROL_RUNTIME_CHECK_FAILED<sup>13+</sup> | 6611004 | 运行时检查失败。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8184| ERR_CODE_CAST_CONTROL_PLAYER_NOT_WORKING<sup>13+</sup> | 6611100 | 跨设备数据传输被锁定。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8185| ERR_CODE_CAST_CONTROL_SEEK_MODE_UNSUPPORTED<sup>13+</sup> | 6611101 | 不支持指定的查找模式。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8186| ERR_CODE_CAST_CONTROL_ILLEGAL_SEEK_TARGET<sup>13+</sup> | 6611102 | 要搜索的位置超出媒体的范围,或者不支持当前搜索模式。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8187| ERR_CODE_CAST_CONTROL_PLAY_MODE_UNSUPPORTED<sup>13+</sup> | 6611103 | 不支持指定的播放模式。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8188| ERR_CODE_CAST_CONTROL_PLAY_SPEED_UNSUPPORTED<sup>13+</sup> | 6611104 | 不支持指定的播放速度。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8189| ERR_CODE_CAST_CONTROL_DEVICE_MISSING<sup>13+</sup> | 6611105 | 操作失败,因为媒体源设备或媒体接收器设备已被销毁。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8190| ERR_CODE_CAST_CONTROL_INVALID_PARAM<sup>13+</sup> | 6611106 | 该参数无效。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8191| ERR_CODE_CAST_CONTROL_NO_MEMORY<sup>13+</sup> | 6611107 | 内存分配失败。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8192| ERR_CODE_CAST_CONTROL_OPERATION_NOT_ALLOWED<sup>13+</sup> | 6611108 | 不被允许的操作。<br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8193| ERR_CODE_CAST_CONTROL_IO_UNSPECIFIED<sup>13+</sup> | 6612000 | 未指定的输入/输出错误。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8194| ERR_CODE_CAST_CONTROL_IO_NETWORK_CONNECTION_FAILED<sup>13+</sup> | 6612001 | 网络连接失败。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8195| ERR_CODE_CAST_CONTROL_IO_NETWORK_CONNECTION_TIMEOUT<sup>13+</sup> | 6612002 | 网络连接超时。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8196| ERR_CODE_CAST_CONTROL_IO_INVALID_HTTP_CONTENT_TYPE <sup>13+</sup> | 6612003 | 无效的"Content-Type"。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8197| ERR_CODE_CAST_CONTROL_IO_BAD_HTTP_STATUS<sup>13+</sup> | 6612004 | HTTP服务器返回一个意外的HTTP响应状态码。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8198| ERR_CODE_CAST_CONTROL_IO_FILE_NOT_FOUND<sup>13+</sup> | 6612005 | 文件不存在。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8199| ERR_CODE_CAST_CONTROL_IO_NO_PERMISSION<sup>13+</sup> | 6612006 | 不允许执行输入/输出的IO操作。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8200| ERR_CODE_CAST_CONTROL_IO_CLEARTEXT_NOT_PERMITTED<sup>13+</sup> | 6612007 | 应用的网络安全配置不允许访问明文HTTP流量。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8201| ERR_CODE_CAST_CONTROL_IO_READ_POSITION_OUT_OF_RANGE<sup>13+</sup> | 6612008 | 从数据绑定中读取数据。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8202| ERR_CODE_CAST_CONTROL_IO_NO_CONTENTS<sup>13+</sup> | 6612100 | 媒体中没有可播放的内容。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8203| ERR_CODE_CAST_CONTROL_IO_READ_ERROR<sup>13+</sup> | 6612101 | 媒体无法读取。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8204| ERR_CODE_CAST_CONTROL_IO_CONTENT_BUSY<sup>13+</sup> | 6612102 | 该资源正在使用中。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8205| ERR_CODE_CAST_CONTROL_IO_CONTENT_EXPIRED<sup>13+</sup> | 6612103 | 输入/输出的IO请求内容已过期。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8206| ERR_CODE_CAST_CONTROL_IO_USE_FORBIDDEN<sup>13+</sup> | 6612104 | 不允许播放请求内容。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8207| ERR_CODE_CAST_CONTROL_IO_NOT_VERIFIED<sup>13+</sup> | 6612105 | 无法验证所允许的内容。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8208| ERR_CODE_CAST_CONTROL_IO_EXHAUSTED_ALLOWED_USES<sup>13+</sup> | 6612106 | 此内容已达到允许的最大使用次数。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8209| ERR_CODE_CAST_CONTROL_IO_NETWORK_PACKET_SENDING_FAILED<sup>13+</sup> | 6612107 | 从源设备发送数据包到接收设备时出现错误。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8210| ERR_CODE_CAST_CONTROL_PARSING_UNSPECIFIED<sup>13+</sup> | 6613000 | 未指定的内容解析错误。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8211| ERR_CODE_CAST_CONTROL_PARSING_CONTAINER_MALFORMED<sup>13+</sup> | 6613001 | 媒体容器比特流的格式解析错误。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8212| ERR_CODE_CAST_CONTROL_PARSING_MANIFEST_MALFORMED<sup>13+</sup> | 6613002 | 媒体清单解析错误。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8213| ERR_CODE_CAST_CONTROL_PARSING_CONTAINER_UNSUPPORTED<sup>13+</sup> | 6613003 | 文件的媒体容器格式/媒体容器特性不被支持。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8214| ERR_CODE_CAST_CONTROL_PARSING_MANIFEST_UNSUPPORTED<sup>13+</sup> | 6613004 | 媒体清单中不支持的特性。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8215| ERR_CODE_CAST_CONTROL_DECODING_UNSPECIFIED<sup>13+</sup> | 6614000 | 未指定的解码错误。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8216| ERR_CODE_CAST_CONTROL_DECODING_INIT_FAILED<sup>13+</sup> | 6614001 | 解码器初始化失败。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8217| ERR_CODE_CAST_CONTROL_DECODING_QUERY_FAILED<sup>13+</sup> | 6614002 | 解码器查询失败。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8218| ERR_CODE_CAST_CONTROL_DECODING_FAILED<sup>13+</sup> | 6614003 | 媒体样本解码失败。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8219| ERR_CODE_CAST_CONTROL_DECODING_FORMAT_EXCEEDS_CAPABILITIES<sup>13+</sup> | 6614004 | 设备的能力无法解码当前格式。<br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8220| ERR_CODE_CAST_CONTROL_DECODING_FORMAT_UNSUPPORTED<sup>13+</sup> | 6614005 | 不支持的解码格式。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8221| ERR_CODE_CAST_CONTROL_AUDIO_RENDERER_UNSPECIFIED<sup>13+</sup> | 6615000 | 未指定的音频渲染器错误。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8222| ERR_CODE_CAST_CONTROL_AUDIO_RENDERER_INIT_FAILED <sup>13+</sup> | 6615001 | 音频渲染器初始化失败。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8223| ERR_CODE_CAST_CONTROL_AUDIO_RENDERER_WRITE_FAILED<sup>13+</sup> | 6615002 | 音频渲染器写入数据失败。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8224| ERR_CODE_CAST_CONTROL_DRM_UNSPECIFIED<sup>13+</sup> | 6616000 | 未指定的DRM相关错误。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8225| ERR_CODE_CAST_CONTROL_DRM_SCHEME_UNSUPPORTED<sup>13+</sup> | 6616001 | 设备不支持所选择的DRM保护方案。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8226| ERR_CODE_CAST_CONTROL_DRM_PROVISIONING_FAILED<sup>13+</sup> | 6616002 | 设备配置失败。<br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8227| ERR_CODE_CAST_CONTROL_DRM_CONTENT_ERROR<sup>13+</sup> | 6616003 | 受DRM保护的内容无法播放。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8228| ERR_CODE_CAST_CONTROL_DRM_LICENSE_ACQUISITION_FAILED<sup>13+</sup> | 6616004 | 获取许可证失败。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8229| ERR_CODE_CAST_CONTROL_DRM_DISALLOWED_OPERATION<sup>13+</sup> | 6616005 | 许可证策略不允许该操作。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8230| ERR_CODE_CAST_CONTROL_DRM_SYSTEM_ERROR<sup>13+</sup> | 6616006 | DRM系统中发生错误。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8231| ERR_CODE_CAST_CONTROL_DRM_DEVICE_REVOKED<sup>13+</sup> | 6616007 | 设备已撤销DRM权限。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8232| ERR_CODE_CAST_CONTROL_DRM_LICENSE_EXPIRED<sup>13+</sup> | 6616008 | 加载中的DRM许可证已过期。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8233| ERR_CODE_CAST_CONTROL_DRM_PROVIDE_KEY_RESPONSE_ERROR<sup>13+</sup> | 6616100 | DRM处理密钥响应时发生错误。 <br>**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。<br>**系统能力:** SystemCapability.Multimedia.AVSession.AVCast| 8234 8235## SkipIntervals<sup>11+</sup> 8236 8237表示session支持的快进快退时间间隔的枚举。 8238 8239**系统能力:** SystemCapability.Multimedia.AVSession.Core 8240 8241| 名称 | 值 | 说明 | 8242| ---------------------- | -- | ----------------------- | 8243| SECONDS_10 | 10 | 时间为10秒。 | 8244| SECONDS_15 | 15 | 时间为15秒。 | 8245| SECONDS_30 | 30 | 时间为30秒。 | 8246