

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 选择在 Amazon Chime SDK 中使用的会议功能
<a name="js-meeting-features"></a>

在调用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) API 时，可以指定向加入会话的客户端提供的功能。请注意，某些功能选项会产生额外费用。

会话具有以下功能：
+ `Audio.EchoReduction` - 机器学习回声抑制。
+ `Video.MaxResolution` - 最大网络摄像头视频分辨率。
+ `Content.MaxResolution` - 最大内容共享分辨率。
+ `Attendees.MaxCount` - 最大参与者人数。

**Topics**
+ [使用 Audio.EchoReduction](#audio-echo-reduction)
+ [使用 Video.MaxResolution](#video-max-resolution)
+ [使用 Content.MaxResolution](#js-content-resolution)
+ [使用 Attendees.MaxCount](#js-max-attendees)
+ [在客户端应用程序中使用会议功能](#meeting-features-client-app)

## 使用 Audio.EchoReduction
<a name="audio-echo-reduction"></a>

可使用 `Audio.EchoReduction` 帮助防止用户扬声器发出的声音传回会议中。

回声抑制非常适合用户的扬声器将成为会议音频的主要输出设备的情况。例如，当多个用户在会议室中使用同一台设备参加会议时，或者当单个远程参与者没有佩戴耳机时。

回声减少功能可在 JavaScript 和 React 客户端库中使用。有关更多信息，请参阅中的[文档 GitHub](https://aws.github.io/amazon-chime-sdk-js/modules/amazonvoice_focus.html#what-is-echo-reduction)。需要支付额外费用，有关详细信息，请参阅 [Amazon Chime SDK 定价页面](https://aws.amazon.com/chime/chime-sdk/pricing/)。

## 使用 Video.MaxResolution
<a name="video-max-resolution"></a>

可使用 `Video.MaxResolution` 指定会议的最大网络摄像头视频分辨率。此功能提供以下选项：
+ `None`：不允许摄像头视频
+ `HD`：高清摄像头视频 (1280x720p)
+ `FHD`：全高清摄像头视频 (1920x1080)

如果请求 FHD (1080p) 视频，则会创建高清 WebRTC 会话。有关详细信息，请参阅 [Amazon Chime SDK 定价页面](https://aws.amazon.com/chime/chime-sdk/pricing/)。

如果客户端尝试发送超过指定最大值的网络摄像头视频，则该服务会拒绝此视频并发送以下错误：

`Disabled video/content send capability, reason: Video resolution is above limit of current meeting feature selection.`

## 使用 Content.MaxResolution
<a name="js-content-resolution"></a>

可使用 `Content.MaxResolution` 指定会议的最大内容共享分辨率。此功能提供以下选项：
+ `None`：不允许内容共享
+ `FHD`：全高清内容共享 (1920x1080)
+ `UHD`：超高清内容共享 (3840x2160)

如果请求 UHD (4K) 内容，则会创建高清 WebRTC 会话。

如果客户端尝试发送超过最大分辨率的内容共享，则共享内容的分辨率将被缩减至指定的最大分辨率。可以通过将 `MediaTrackConstraints` 应用于内容共享轨道进行扩缩。以下示例显示了如何扩缩共享轨道。

```
const constraint: MediaTrackConstraints = {
    width: { ideal: videoQualitySettings.videoWidth },
    height: { ideal: videoQualitySettings.videoHeight },
    frameRate: { ideal: videoQualitySettings.videoFrameRate },
  };
  this.context.logger.info(
    `Video track (content = ${isContentAttendee}) with constraint: ${JSON.stringify(
      constraint
    )}, trackSettings: ${JSON.stringify(trackSettings)}`
  );
  try {
    await mediaStreamTrack.applyConstraints(constraint);
  } catch (error) {
    this.context.logger.info(
      `Could not apply constraint for video track (content = ${isContentAttendee})`
    );
  }
```

下表显示了预期的内容共享行为。


| 内容功能 | 内容共享原生分辨率 | 扩展 | 内容编码分辨率 | 
| --- | --- | --- | --- | 
| FHD | 1280x720 | 否 | 1280x720 | 
| FHD | 1920x1080 | 否 | 1920x1080 | 
| FHD | 3840x2160 | 是 | 1920x1080 | 
| UHD | 1920x1080 | 否 | 1920x1080 | 
| UHD | 3840x2160 | 否 | 3840x2160 | 
| UHD | 4200x2400 | 是 | 3780x2160 | 

## 使用 Attendees.MaxCount
<a name="js-max-attendees"></a>

可使用 `Attendee.MaxCount` 指定允许加入会议的最大参与者人数。的上限 Attendee.MaxCount 取决于会话类型。对于标准会话，最多可以选择 250 名参与者。对于高清会话，最多*只能* 选择 25 名参与者。

如果请求 FHD (1080p) 视频或 UHD (4K) 内容，会话将是高清会话。

高清会话需要支付参与者容量费用。有关详细信息，请参阅 [Amazon Chime SDK 定价页面](https://aws.amazon.com/chime/chime-sdk/pricing/)。

## 在客户端应用程序中使用会议功能
<a name="meeting-features-client-app"></a>



### 创建具有指定功能的会议
<a name="js-create-meetings-sdk-namespace"></a>

要创建会议，请调用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) API 并指定所需的会议功能。以下示例演示了如何指定所有功能。

```
// You must migrate to the Amazon Chime SDK Meetings namespace.
const chime = AWS.ChimeSDKMeetings({ region: "{{eu-central-1}}" });

// Create meeting 
const meetingInfo = await chime.createMeeting({
    ...
    MeetingFeatures: {
      Audio: {
        EchoReduction: '{{AVAILABLE}}' 
      },
      Video: {
        MaxResolution: '{{FHD}}' 
      },
      Content: {
        MaxResolution: '{{UHD}}' 
      },
      Attendee: {
        MaxCount: {{25}} 
      },
    } 
  }).promise();
```

### 在客户端使用会议功能
<a name="js-client-level"></a>

创建具有所需功能的会议后，可以在创建 `MeetingSessionConfiguration` 对象时将这些功能传入 `joinInfo` 中。会议功能在创建 `meetingSession` 时用于设置网络摄像头视频分辨率和比特率，以及内容共享分辨率和比特率。

```
const configuration = new MeetingSessionConfiguration(this.joinInfo.Meeting, this.joinInfo.Attendee);

this.meetingSession = new DefaultMeetingSession(
    configuration,
    this.meetingLogger,
    this.deviceController,
    new DefaultEventController(configuration, this.meetingLogger, this.eventReporter)
);
```