> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# chat_manager::initialize

> chat_manager::initialize

# chat\_manager::initialize

初始化对象实例。

## 语法

```cpp theme={null}
void initialize(  
    uint32_t maxChatUserCount,  
    float defaultAudioRenderVolume= 1.0f,  
    game_chat_communication_relationship_flags defaultLocalToRemoteCommunicationRelationship= game_chat_communication_relationship_flags none,  
    game_chat_shared_device_communication_relationship_resolution_mode sharedDeviceResolutionMode= game_chat_shared_device_communication_relationship_resolution_mode permissive,  
    game_chat_speech_to_text_conversion_mode speechToTextConversionMode= game_chat_speech_to_text_conversion_mode automatic,  
    game_chat_audio_manipulation_mode_flags audioManipulationMode= game_chat_audio_manipulation_mode_flags none  
)  
```

### 参数

*maxChatUserCount*   \_In\_\
类型：uint32\_t

在任何给定时间将添加到本地 chat\_manager 实例中的本地和远程用户的最大总数。Game Chat 会按用户数量成比例地预分配内存。

*defaultAudioRenderVolume*   \_In\_range\_(0,1)\
类型：float

将用于新用户的音频渲染音量。

*defaultLocalToRemoteCommunicationRelationship*   \_In\_\
类型：[game\_chat\_communication\_relationship\_flags](/reference/chat/gamechat2/enums/game_chat_communication_relationship_flags)

将在本地和远程用户之间使用的默认通信关系。也就是说，当远程用户加入时，这将是所有现有本地用户与该远程用户之间使用的默认关系。当本地用户加入时，这将是该本地用户与所有现有远程用户之间的默认关系。

*sharedDeviceResolutionMode*   \_In\_\
类型：[game\_chat\_shared\_device\_communication\_relationship\_resolution\_mode](/reference/chat/gamechat2/enums/game_chat_shared_device_communication_relationship_resolution_mode)

用于共享设备上具有冲突通信关系的用户的解析模式。

*speechToTextConversionMode*   \_In\_\
类型：[game\_chat\_speech\_to\_text\_conversion\_mode](/reference/chat/gamechat2/enums/game_chat_speech_to_text_conversion_mode)

配置语音转文本转换模式。

*audioManipulationMode*   \_In\_\
类型：[game\_chat\_audio\_manipulation\_mode\_flags](/reference/chat/gamechat2/enums/game_chat_audio_manipulation_mode_flags)

将此参数传递为 game\_chat\_audio\_manipulation\_mode\_flags::none 允许音频不受干扰地流经 Game Chat。传递此参数并设置 game\_chat\_audio\_manipulation\_mode\_flags::pre\_encode\_stream\_manipulation 位时，可授予在发送端对聊天用户音频数据进行处理和操作的权限。通过使用 [pre\_encode\_audio\_stream](/reference/chat/gamechat2/classes/pre_encode_audio_stream/pre_encode_audio_stream) 对象来启用对音频数据的访问。可以使用 [chat\_manager::get\_pre\_encode\_audio\_streams](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_get_pre_encode_audio_streams) 方法查询这些对象。当 Game Chat 创建、关闭和销毁 [pre\_encode\_audio\_stream](/reference/chat/gamechat2/classes/pre_encode_audio_stream/pre_encode_audio_stream) 对象时，将生成相应的 [game\_chat\_stream\_state\_change](/reference/chat/gamechat2/structs/game_chat_stream_state_change) 事件。传递此参数并设置 game\_chat\_audio\_manipulation\_mode\_flags::post\_decode\_stream\_manipulation 位时，可授予在接收端对聊天用户音频数据进行处理和操作的权限。通过使用 [post\_decode\_audio\_source\_stream](/reference/chat/gamechat2/classes/post_decode_audio_source_stream/post_decode_audio_source_stream) 和 [post\_decode\_audio\_sink\_stream](/reference/chat/gamechat2/classes/post_decode_audio_sink_stream/post_decode_audio_sink_stream) 对象来启用对音频数据的访问。可以使用 [chat\_manager::get\_post\_decode\_audio\_source\_streams](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_get_post_decode_audio_source_streams) 和 [chat\_manager::get\_post\_decode\_audio\_sink\_streams](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_get_post_decode_audio_sink_streams) 方法查询这些对象。当 Game Chat 创建、关闭和销毁 [post\_decode\_audio\_source\_stream](/reference/chat/gamechat2/classes/post_decode_audio_source_stream/post_decode_audio_source_stream) 和 [post\_decode\_audio\_sink\_stream](/reference/chat/gamechat2/classes/post_decode_audio_sink_stream/post_decode_audio_sink_stream) 对象时，将生成相应的 [game\_chat\_stream\_state\_change](/reference/chat/gamechat2/structs/game_chat_stream_state_change) 事件。

### 返回值

类型：void

## 备注

必须先调用此方法，然后才能调用任何其他方法，静态方法 chat\_manager::singleton\_instance()、chat\_manager::set\_memory\_callbacks()、chat\_manager::get\_memory\_callbacks()、chat\_manager::set\_thread\_processor() 和 chat\_manager::get\_thread\_processor() 除外。如果没有随后调用 chat\_manager::cleanup()，就不能再次调用 chat\_manager::initialize()。

每次调用 chat\_manager::initialize() 都应有一次对应的 chat\_manager::cleanup() 调用。

## 要求

**头文件：** GameChat2.h

**支持的平台：** Windows、XBOX One 系列主机和 XBOX Series 主机

## 另请参阅

[chat\_manager](/reference/chat/gamechat2/classes/chat_manager/chat_manager)\
[chat\_manager::cleanup](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_cleanup)\
[chat\_manager::singleton\_instance](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_singleton_instance)\
[chat\_manager::set\_memory\_callbacks](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_set_memory_callbacks)\
[chat\_manager::get\_memory\_callbacks](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_get_memory_callbacks)\
[chat\_manager::set\_thread\_processor](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_set_thread_processor)\
[chat\_manager::get\_thread\_processor](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_get_thread_processor)\
[pre\_encode\_audio\_stream](/reference/chat/gamechat2/classes/pre_encode_audio_stream/pre_encode_audio_stream)\
[post\_decode\_audio\_source\_stream](/reference/chat/gamechat2/classes/post_decode_audio_source_stream/post_decode_audio_source_stream)\
[post\_decode\_audio\_sink\_stream](/reference/chat/gamechat2/classes/post_decode_audio_sink_stream/post_decode_audio_sink_stream)


## Related topics

- [chat_manager::cleanup](/zh-CN/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_cleanup.md)
- [chat_manager::set_thread_processor](/zh-CN/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_set_thread_processor.md)
- [chat_manager::set_thread_affinity_mask](/zh-CN/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_set_thread_affinity_mask.md)
- [chat_manager::set_legacy_era_uwp_compat_mode_enabled](/zh-CN/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_set_legacy_era_uwp_compat_mode_enabled.md)
- [chat_manager::add_remote_user](/zh-CN/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_add_remote_user.md)
