1# Types 2<!--Kit: AVSession Kit--> 3<!--Subsystem: Multimedia--> 4<!--Owner: @ccfriend; @liao_qian--> 5<!--Designer: @ccfriend--> 6<!--Tester: @chenmingxi1_huawei--> 7<!--Adviser: @zengyawen--> 8 9> **说明:** 10> 11> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 12 13## AVSessionType<sup>10+<sup> 14 15type AVSessionType = 'audio' | 'video' | 'voice_call' | 'video_call' 16 17当前会话支持的会话类型。 18 19该类型可取的值为下表字符串。 20 21**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 22 23**系统能力:** SystemCapability.Multimedia.AVSession.Core 24 25| 类型 | 说明 | 26| ----- | ---- | 27| 'audio' | 音频 | 28| 'video' | 视频 | 29| 'voice_call'<sup>11+<sup> | 音频通话。 | 30| 'video_call'<sup>12+<sup> | 视频通话。 | 31 32## AVCastControlCommandType<sup>10+</sup> 33 34type AVCastControlCommandType = 'play' | 'pause' | 'stop' | 'playNext' | 'playPrevious' | 'fastForward' | 'rewind' | 35 'seek' | 'setVolume' | 'setSpeed' | 'setLoopMode' | 'toggleFavorite' | 'toggleMute' 36 37投播控制器可传递的命令。 38 39**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 40 41**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 42 43| 类型 | 说明 | 44| ---------------- | ------------ | 45| 'play' | 播放。无需传入参数。 | 46| 'pause' | 暂停。无需传入参数。 | 47| 'stop' | 停止。无需传入参数。 | 48| 'playNext' | 下一首。无需传入参数。 | 49| 'playPrevious' | 上一首。无需传入参数。 | 50| 'fastForward' | 快进。无需传入参数。 | 51| 'rewind' | 快退。无需传入参数。 | 52| 'seek' | 跳转某一节点。对应参数使用number类型。 | 53| 'setVolume' | 设置音量。对应参数使用number类型, 可通过[AVPlaybackState.maxVolume](arkts-apis-avsession-i.md#avplaybackstate10)获取系统最大音量 | 54| 'setSpeed' | 设置播放倍速。对应参数使用[media.PlaybackSpeed](../apis-media-kit/arkts-apis-media-e.md#playbackspeed8)。 | 55| 'setLoopMode' | 设置循环模式。对应参数使用[LoopMode](arkts-apis-avsession-e.md#loopmode10)。 | 56| 'toggleFavorite' | 是否收藏。对应参数使用[AVMetadata.assetId](arkts-apis-avsession-i.md#avmetadata10)。 | 57| 'toggleMute' | 设置静音状态。无需传入参数。 | 58 59## ExtraInfo<sup>18+</sup> 60 61type ExtraInfo = { [key: string]: Object; } 62 63媒体提供方设置的自定义媒体数据包对象。 64 65**系统能力:** SystemCapability.Multimedia.AVSession.Core 66 67| 类型 | 说明 | 68| ----------------------------------- | ----------------------------- | 69| [key: string]: Object | key为远端分布式事件类型。当前支持的事件类型包括:<br>'AUDIO_GET_VOLUME':获取远端设备音量。<br>'AUDIO_GET_AVAILABLE_DEVICES':获取远端所有可连接设备。<br>'AUDIO_GET_PREFERRED_OUTPUT_DEVICE_FOR_RENDERER_INFO':获取远端实际发声设备。<br>媒体提供方根据不同的远端分布式事件类型,返回对应的媒体数据包Object对象。 | 70 71## KeyRequestCallback<sup>12+</sup> 72 73type KeyRequestCallback = (assetId: string, requestData: Uint8Array) => void 74 75许可证请求事件的回调函数。 76 77**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 78 79**系统能力:** SystemCapability.Multimedia.AVSession.AVCast 80 81**参数:** 82 83| 参数名 | 类型 | 必填 | 说明 | 84| ------ | ------ | ---- | ----------------------------------------- | 85| assetId | string | 是 | 媒体ID。 | 86| requestData | Uint8Array | 是 | 媒体许可证请求数据。 | 87 88**示例:** 89<!--code_no_check--> 90```ts 91let keyRequestCallback: avSession.KeyRequestCallback = async(assetId: string, requestData: Uint8Array) => { 92 console.info(`Succeeded in keyRequestCallback. assetId: ${assetId}, requestData: ${requestData}`); 93} 94``` 95 96## AVControlCommandType<sup>10+</sup> 97 98type AVControlCommandType = 'play' | 'pause' | 'stop' | 'playNext' | 'playPrevious' | 'fastForward' | 'rewind' | 99 'seek' | 'setSpeed' | 'setLoopMode' | 'toggleFavorite' | 'playFromAssetId' | 'playWithAssetId' | 'answer' | 'hangUp' | 'toggleCallMute' | 'setTargetLoopMode' 100 101会话可传递的命令。 102 103该类型可取的值为下表字符串的并集。 104 105**系统能力:** SystemCapability.Multimedia.AVSession.Core 106 107| 类型 | 说明 | 108| ---------------- | ------------ | 109| 'play' | 播放。无需传入参数。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 110| 'pause' | 暂停。无需传入参数。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 111| 'stop' | 停止。 无需传入参数。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 112| 'playNext' | 下一首。无需传入参数。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 113| 'playPrevious' | 上一首。无需传入参数。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 114| 'fastForward' | 快进。无需传入参数。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 115| 'rewind' | 快退。无需传入参数。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 116| 'seek' | 跳转某一节点。对应参数使用number类型。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 117| 'setSpeed' | 设置播放倍速。对应参数使用number类型。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 118| 'setLoopMode' | 设置循环模式。对应参数使用[LoopMode](arkts-apis-avsession-e.md#loopmode10)。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 119| 'setTargetLoopMode' <sup>18+</sup> | 设置目标循环模式。对应参数推荐使用[LoopMode](arkts-apis-avsession-e.md#loopmode10)。<br>**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 | 120| 'toggleFavorite' | 是否收藏。对应参数使用[AVMetadata.assetId](arkts-apis-avsession-i.md#avmetadata10)。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 121| 'playFromAssetId' <sup>11+</sup>| 播放指定的assetId。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 122| 'playWithAssetId' <sup>20+</sup> | 播放指定的assetId。对应参数使用[AVMetadata.assetId](arkts-apis-avsession-i.md#avmetadata10),<br>字符串长度<40960字节。<br>**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。| 123|'answer' <sup>11+</sup> | 接听。无需传入参数。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 124| 'hangUp' <sup>11+</sup> | 挂断。无需传入参数。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 125|'toggleCallMute' <sup>11+</sup> | 设置通话静音状态。无需传入参数。 <br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 126