• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.multimedia.avCastPicker (投播组件)
2
3本模块提供创建投播组件AVCastPicker的功能,提供设备发现连接的统一入口。
4
5> **说明:**
6>
7> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8> - 示例效果请以真机为准,当前DevEco Studio预览器无实际投播功能。<!--Del-->
9> - 当前组件的使用,依赖于设备支持“设备选择界面”。当前暂无OpenHarmony设备支持,需要OEM厂商实现具体的“设备选择界面”。<!--DelEnd-->
10> <!--RP2--><!--RP2End-->
11
12## 导入模块
13
14```js
15import { AVCastPicker } from '@kit.AVSessionKit';
16```
17
18## 属性
19
20支持[通用属性](../apis-arkui/arkui-ts/ts-component-general-attributes.md)。
21
22## AVCastPicker
23
24```
25AVCastPicker({
26  normalColor?: Color | number | string;
27  activeColor?: Color | number | string;
28  pickerStyle?: AVCastPickerStyle;
29  colorMode?: AVCastPickerColorMode;
30  sessionType?: string;
31  customPicker?: CustomBuilder;
32  onStateChange?: (state: AVCastPickerState) => void;
33})
34```
35
36投播组件,可用于将音视频资源投放到其它设备播放。
37
38该组件为自定义组件,开发者在使用前需要先了解[@Component](../../ui/state-management/arkts-create-custom-components.md#component)。
39
40**装饰器类型:** [@Component](../../ui/state-management/arkts-create-custom-components.md)
41
42**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
43
44**系统能力:** SystemCapability.Multimedia.AVSession.AVCast
45
46| 名称 | 类型 | 必填 | 装饰器类型 | 说明 |
47| -------- | -------- | -------- | -------- | -------- |
48| normalColor<sup>11+</sup> | Color &#124; number &#124; string | 否 | @Prop | 指正常状态下投播组件的颜色。<br>未设置将采用colorMode下的颜色设置。 |
49| activeColor<sup>11+</sup> | Color &#124; number &#124; string | 否 | @Prop | 指设备切换成功状态下投播组件的颜色。未设置系统将优先根据normalColor的颜色匹配;如果normalColor也未设置,将采用colorMode下的颜色设置。 |
50| pickerStyle<sup>12+</sup> | [AVCastPickerStyle](js-apis-avCastPickerParam.md#avcastpickerstyle12) | 否 | @Prop | 投播样式。<br>- 当sessionType是audio或者video时,默认值为STYLE_PANEL;<br>- 当sessionType是voice_call或者video_call时,默认值为STYLE_MENU,且不可修改为STYLE_PANEL。|
51| colorMode<sup>12+</sup> | [AVCastPickerColorMode](js-apis-avCastPickerParam.md#avcastpickercolormode12) | 否 |  @Prop | 显示模式。默认值为AUTO。<br>- 当colorMode设置为AUTO时,跟随系统的深浅色模式的默认色值;<br>- 当colorMode设置为DARK、LIGHT时,使用对应模式的系统预定色值。 |
52| sessionType<sup>12+</sup> | string | 否| @Prop | 会话类型,可参考[AVSessionType](js-apis-avsession.md#avsessiontype10)。默认值为当前应用创建的AVSessionType。 |
53| customPicker<sup>12+</sup> | [CustomBuilder](../apis-arkui/arkui-ts/ts-types.md#custombuilder8) | 否 | @Prop | 自定义样式。建议应用自定义组件样式,可有效提升组件显示速度。 |
54| onStateChange<sup>11+</sup> | (state: [AVCastPickerState](js-apis-avCastPickerParam.md)) => void | 否 | - | 投播状态更改回调。 |
55
56## 事件
57
58支持[通用事件](../apis-arkui/arkui-ts/ts-component-general-events.md)。
59
60## 示例
61
62投播功能的示例说明参考如下。
63<!--RP1--><!--RP1End-->
64
65```ts
66import { AVCastPickerState, AVCastPicker } from '@kit.AVSessionKit';
67
68@Entry
69@Component
70struct Index {
71
72  @State pickerImage: ResourceStr = $r('app.media.castPicker'); // 自定义资源。
73
74  private onStateChange(state: AVCastPickerState) {
75    if (state == AVCastPickerState.STATE_APPEARING) {
76      console.log('The picker starts showing.');
77    } else if (state == AVCastPickerState.STATE_DISAPPEARING) {
78      console.log('The picker finishes presenting.');
79    }
80  }
81
82  @Builder
83  customPickerBuilder(): void {
84    Image(this.pickerImage)
85      .width('100%')
86      .height('100%')
87      .fillColor(Color.Black)
88  }
89
90  build() {
91    Row() {
92      Column() {
93        AVCastPicker({
94          normalColor: Color.Red,
95          customPicker: () => this.customPickerBuilder(),
96          onStateChange: this.onStateChange
97        })
98          .width('40vp')
99          .height('40vp')
100          .border({ width: 1, color: Color.Red })
101      }.height('50%')
102    }.width('50%')
103  }
104}
105```
106