# ChannelMediaOptions (/zh-CN/api-reference/rtc/harmonyos/class-channelmediaoptions)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="class_channelmediaoptions__prototype"></a>

```ts
export class ChannelMediaOptions {

  public publishCameraTrack?:boolean;

  public publishSecondaryCameraTrack?:boolean;

  public publishMicrophoneTrack?:boolean;

  public publishScreenCaptureVideo?:boolean;

  public publishScreenCaptureAudio?:boolean;

  public publishCustomAudioTrack?:boolean;

  public publishCustomAudioTrackId?:number;

  public publishCustomVideoTrack?:boolean;

  public publishEncodedVideoTrack?:boolean;

  public publishMediaPlayerAudioTrack?:boolean;

  public publishMediaPlayerVideoTrack?:boolean;

  public publishTranscodedVideoTrack?:boolean;

  public publishMixedAudioTrack?:boolean;

  public autoSubscribeAudio?:boolean;

  public autoSubscribeVideo?:boolean;

  public enableAudioRecordingOrPlayout?:boolean;

  public publishMediaPlayerId?:number;

  public clientRoleType?:number;

  public audienceLatencyLevel?:number;

  public defaultVideoStreamType?:number;

  public channelProfile?:number;

  public audioDelayMs?:number;

  public mediaPlayerAudioDelayMs?:number;

  public token?:string;

  public enableBuiltInMediaEncryption?:boolean;

  public publishRhythmPlayerTrack?:boolean;

  public isInteractiveAudience?:boolean;

  public customVideoTrackId?:number;

  public isAudioFilterable?:boolean;

  public startPreview?:boolean;
  public constructor() {
  }
}
```

<a id="class_channelmediaoptions__detailed_desc"></a>

### 详情 [#详情]

SDK 支持在同一时间、同一 [RtcConnection](/zh-CN/api-reference/rtc/harmonyos/class-rtcconnection) 中发布多路音频流、一路视频流。例如，publishMicrophoneTrack、publishCustomAudioTrack 和 publishMediaPlayerAudioTrack 可以同时为 `true`； publishCameraTrack、publishCustomVideoTrack 或 publishEncodedVideoTrack 之中同一时间只能有一个为 `true`。

<a id="class_channelmediaoptions__note"></a>

:::caution
注意： 建议你根据业务场景自行设置成员参数值，否则 SDK 会自动对成员参数进行赋值。
:::

<a id="class_channelmediaoptions__parameters"></a>

##

<ParameterList>
<a id="publishcameratrack"></a>
<Parameter name="publishCameraTrack">

设置是否发布摄像头采集的视频：

<a id="class_channelmediaoptions__ul_vx5_np5_3qb"></a>

- `true`：发布摄像头采集的视频。
- `false`：不发布摄像头采集的视频。

</Parameter>
<a id="publishmicrophonetrack"></a>
<Parameter name="publishMicrophoneTrack">

设置是否发布麦克风采集到的音频：

- `true`：发布麦克风采集到的音频。
- `false`：不发布麦克风采集到的音频。

:::note
注：

- 自 v4.0.0 起，该参数名称由 publishAudioTrack 改为 publishMicrophoneTrack。
- 如果你将该参数设为 `false`，SDK 也会关闭麦克风采集。
- 如果你想要发布麦克风采集到的音频流，请确保 enableAudioRecordingOrPlayout 设为 `true`。
:::

</Parameter>
<a id="publishscreencapturevideo"></a>
<Parameter name="publishScreenCaptureVideo">

设置是否发布屏幕采集的视频：

- `true`：发布屏幕采集到的视频。
- `false`：不发布屏幕采集到的视频。

</Parameter>
<a id="publishscreencaptureaudio"></a>
<Parameter name="publishScreenCaptureAudio">

设置是否发布屏幕采集的音频：

- `true`：发布屏幕采集到的音频。
- `false`：不发布屏幕采集到的音频。

</Parameter>
<a id="publishcustomaudiotrack"></a>
<Parameter name="publishCustomAudioTrack">

设置是否发布自定义采集的音频：

- `true`：发布自定义采集到的音频。
- `false`：不发布自定义采集到的音频。

</Parameter>
<a id="publishcustomaudiotrackid"></a>
<Parameter name="publishCustomAudioTrackId">

待发布的自定义音频轨道的 ID，默认值为 0。你可以通过 [createCustomAudioTrack](/zh-CN/api-reference/rtc/harmonyos/audio/audio-custom-capturenrendering#api_imediaengine_createcustomaudiotrack) 方法来获取自定义音频轨道 ID。

</Parameter>
<a id="publishcustomvideotrack"></a>
<Parameter name="publishCustomVideoTrack">

设置是否发布自定义采集的视频：

- `true`：发布自定义采集的视频。
- `false`：不发布自定义采集到的视频。

</Parameter>
<a id="publishencodedvideotrack"></a>
<Parameter name="publishEncodedVideoTrack">

设置是否发布编码后的视频：

<a id="class_channelmediaoptions__ul_ljg_4q5_3qb"></a>

- `true`：发布编码后的视频。
- `false`：不发布编码后的视频。

</Parameter>
<a id="publishmediaplayeraudiotrack"></a>
<Parameter name="publishMediaPlayerAudioTrack">

设置是否发布媒体播放器的音频：

<a id="class_channelmediaoptions__ul_gr3_rq5_3qb"></a>

- `true`：发布媒体播放器的音频。
- `false`：不发布媒体播放器的音频。

</Parameter>
<a id="publishmediaplayervideotrack"></a>
<Parameter name="publishMediaPlayerVideoTrack">

设置是否发布媒体播放器的视频：

<a id="class_channelmediaoptions__ul_gtd_tq5_3qb"></a>

- `true`：发布媒体播放器的视频。
- `false`：不发布媒体播放器的视频。

</Parameter>
<a id="autosubscribeaudio"></a>
<Parameter name="autoSubscribeAudio">

设置是否自动订阅所有音频流：

<a id="class_channelmediaoptions__ul_gxf_vq5_3qb"></a>

- `true`：自动订阅所有音频流。
- `false`：不自动订阅任何音频流。

</Parameter>
<a id="autosubscribevideo"></a>
<Parameter name="autoSubscribeVideo">

设置是否自动订阅所有视频流：

<a id="class_channelmediaoptions__ul_gfh_xq5_3qb"></a>

- `true`：自动订阅所有视频流。
- `false`：不自动订阅任何视频流。

</Parameter>
<a id="enableaudiorecordingorplayout"></a>
<Parameter name="enableAudioRecordingOrPlayout">

设置是否开启音频录制或播放：

- `true`：开启音频录制或播放。
- `false`：不开启音频录制或播放。

:::note
注： 如果那你需要发布麦克风采集的音频流，请确保该参数设为 `true`。
:::

</Parameter>
<a id="publishmediaplayerid"></a>
<Parameter name="publishMediaPlayerId">

待发布的媒体播放器的 ID。默认值为 0。

</Parameter>
<a id="clientroletype"></a>
<Parameter name="clientRoleType">

用户的角色：

<a id="class_channelmediaoptions__clientroletype"></a>

- BROADCASTER (1)：主播。
- AUDIENCE (2)：观众。

:::note
注： 角色为观众的用户无法在频道内发布音视频流。在直播场景下发流时，请确保你的用户角色已切换为主播。
:::

</Parameter>
<a id="audiencelatencylevel"></a>
<Parameter name="audienceLatencyLevel">

观众端延时级别。详见 [AudienceLatencyLevel](/zh-CN/api-reference/rtc/harmonyos/enum-audiencelatencyleveltype)。

</Parameter>
<a id="defaultvideostreamtype"></a>
<Parameter name="defaultVideoStreamType">

默认订阅的视频流类型: [VideoStreamType](/zh-CN/api-reference/rtc/harmonyos/enum-videostreamtype)。

</Parameter>
<a id="channelprofile"></a>
<Parameter name="channelProfile">

频道使用场景。

- COMMUNICATION (0)：通信。声网推荐使用直播场景以获取更好的音视频体验。
- LIVE_BROADCASTING (1)：（默认）直播。
- GAME (2)：游戏语音场景。

  <a id="废弃"></a>

  :::error[废弃：]
  请改用 LIVE_BROADCASTING。
  :::
- CLOUD_GAMING (3)：互动。该场景对延时进行了优化。如果你的场景中有用户需要频繁互动，建议使用该场景。

  <a id="废弃-1"></a>

  :::error[废弃：]
  请改用 LIVE_BROADCASTING。
  :::

</Parameter>
<a id="audiodelayms"></a>
<Parameter name="audioDelayMs">

发送音频帧的延时（毫秒）。你可以通过该参数来设置需要发送的音频帧的延时，以确保音画同步。

如果要关闭延时，将此参数值设置为 0。

</Parameter>
<a id="token"></a>
<Parameter name="token">

（可选）在服务端生成的用于鉴权的动态密钥。详见[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。

:::caution
注意：

- 该参数仅在调用 [updateChannelMediaOptions](/zh-CN/api-reference/rtc/harmonyos/channel#api_irtcengine_updatechannelmediaoptions) 或 [updateChannelMediaOptionsEx](/zh-CN/api-reference/rtc/harmonyos/channel#api_irtcengineex_updatechannelmediaoptionsex) 时生效。
- 请确保用于生成 token 的 App ID、频道名和用户名和 [create](/zh-CN/api-reference/rtc/harmonyos/initialize#api_irtcengine_initialize) 方法初始化引擎时用的 App ID，以及 [joinChannelWithOptions](/zh-CN/api-reference/rtc/harmonyos/channel#api_irtcengine_joinchannel2) 或 [joinChannelEx](/zh-CN/api-reference/rtc/harmonyos/channel#api_irtcengineex_joinchannelex) 方法加入频道时设置的频道名和用户名是一致的。
:::

</Parameter>
<a id="publishrhythmplayertrack"></a>
<Parameter name="publishRhythmPlayerTrack">

设置是否发布虚拟节拍器声音至远端：

- `true`：发布。本地用户和远端用户都能听到节拍器。
- `false`：不发布。只有本地用户能听到节拍器。

</Parameter>
<a id="isinteractiveaudience"></a>
<Parameter name="isInteractiveAudience">

是否开启互动观众模式：

- `true`：开启互动观众模式。成功开启后，本地用户作为互动观众，收到低延时和流畅的远端用户视频。
- `false`：不开启互动观众模式。本地用户作为普通观众，收到默认设置的远端用户视频。

:::caution
注意：

- 该参数用于实现跨直播间连麦场景。连麦主播需要调用 [joinChannelEx](/zh-CN/api-reference/rtc/harmonyos/channel#api_irtcengineex_joinchannelex) 方法，以观众身份加入对方的直播间，并将 isInteractiveAudience 设置为 `true`。
- 仅当用户角色为 AUDIENCE 时，该参数生效。
:::

</Parameter>
<a id="customvideotrackid"></a>
<Parameter name="customVideoTrackId">

调用 [createCustomVideoTrack](/zh-CN/api-reference/rtc/harmonyos/video/video-custom-capturenrendering#api_irtcengine_createcustomvideotrack) 方法返回的视频轨道 ID。默认值为 0。

</Parameter>
<a id="isaudiofilterable"></a>
<Parameter name="isAudioFilterable">

设置是否让当前音频流根据音强算法参与选流。

- `true`：参与音强选流。如未开启音强选流功能，该参数不会生效。
- `false`：不参与音强选流。

:::caution
注意： 如需启用该功能，请[联系销售](https://www.shengwang.cn/contact-sales/)。
:::

</Parameter>
</ParameterList>
