> ## 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.

# PartyLocalDevice::CreateChatControl

> 将异步操作排队以为指定用户创建本地聊天控件。

将异步操作排队以为指定用户创建本地聊天控件。

## Syntax

```cpp theme={null}
PartyError CreateChatControl(  
    const PartyLocalUser* localUser,  
    PartyString languageCode,  
    void* asyncIdentifier,  
    PartyLocalChatControl** localChatControl  
)  
```

### Parameters

**`localUser`**   [PartyLocalUser\*](/services/playfab/multiplayer/networking/reference/classes/PartyLocalUser/partylocaluser)

新本地聊天控件的本地用户。

**`languageCode`**   [PartyString](/services/playfab/multiplayer/networking/reference/typedefs)\
*optional*

要使用的可选语言。

**`asyncIdentifier`**   void\*\
*optional*

可选的、应用定义的指针大小上下文值，可用于将完成状态更改与此调用关联。

**`localChatControl`**   [PartyLocalChatControl\*\*](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/partylocalchatcontrol)\
*optional, library-allocated output*

可选的输出本地聊天控件。

### Return value

PartyError

如果创建聊天控件的异步操作已开始，则返回 `c_partyErrorSuccess`；否则返回错误代码。如果此方法失败，则不会生成相关的状态更改。可通过 [PartyManager::GetErrorMessage()](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_geterrormessage) 检索错误代码的可读形式。

## Remarks

如果此方法返回成功，将生成 [PartyCreateChatControlCompletedStateChange](/services/playfab/multiplayer/networking/reference/structs/partycreatechatcontrolcompletedstatechange) 以提供异步操作的结果。如果异步操作成功，将生成 [PartyChatControlCreatedStateChange](/services/playfab/multiplayer/networking/reference/structs/partychatcontrolcreatedstatechange)。如果操作失败，将生成 [PartyChatControlDestroyedStateChange](/services/playfab/multiplayer/networking/reference/structs/partychatcontroldestroyedstatechange)。此方法本身不会使聊天控件对任何远程设备可见。要向远程设备公告此聊天控件，标题应调用 [PartyNetwork::ConnectChatControl()](/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_connectchatcontrol)。<br /><br /> 成功返回时，此方法会使先前由 [PartyManager::GetChatControls()](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_getchatcontrols) 或 [PartyDevice::GetChatControls()](/services/playfab/multiplayer/networking/reference/classes/PartyDevice/methods/partydevice_getchatcontrols) 为本地设备返回的任何数组的内存无效，因为它同步地将新聊天控件添加到这些数组中。[PartyManager::StartProcessingStateChanges()](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_startprocessingstatechanges) 也会使这些数组的内存无效。返回的 `localChatControl` 对象将保持有效，直到生成 PartyChatControlDestroyedStateChange 并且所有引用该对象的状态更改都已返回到 [PartyManager::FinishProcessingStateChanges()](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_finishprocessingstatechanges)。   <br /><br /> 可以通过 `languageCode` 参数选择性地指定与此聊天控件关联的语言。如果未指定语言，则将使用由平台确定的用户默认语言。该语言用作与此聊天控件关联的用于转录的口语语言，以及传入翻译的目标语言。例如，如果指定的语言代码为 en-US，则此聊天控件的输入音频将被视为英语（美国）并进行相应转录。如果通过 [PartyLocalChatControl::SetTranscriptionOptions()](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settranscriptionoptions) 或 [PartyLocalChatControl::SetTextChatOptions()](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settextchatoptions) 启用了翻译，则传入的语音聊天转录和/或文本聊天将被翻译为英语（美国）。   <br /><br /> 语言代码应采用 BCP 47 格式；支持的语言代码在[语言支持](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/language-support)中列出。指定不支持或无效的语言代码不会导致此方法失败，但会导致无法生成与此聊天控件关联的转录。可通过 [PartyLocalChatControl::GetLanguage()](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_getlanguage) 查询与此方法一起使用的语言代码。

## Requirements

**Header:** Party.h

## See also

[PartyLocalDevice](/services/playfab/multiplayer/networking/reference/classes/PartyLocalDevice/partylocaldevice)\
[PartyCreateChatControlCompletedStateChange](/services/playfab/multiplayer/networking/reference/structs/partycreatechatcontrolcompletedstatechange)\
[PartyChatControlCreatedStateChange](/services/playfab/multiplayer/networking/reference/structs/partychatcontrolcreatedstatechange)\
[PartyChatControlDestroyedStateChange](/services/playfab/multiplayer/networking/reference/structs/partychatcontroldestroyedstatechange)\
[PartyManager::GetChatControls](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_getchatcontrols)\
[PartyDevice::GetChatControls](/services/playfab/multiplayer/networking/reference/classes/PartyDevice/methods/partydevice_getchatcontrols)\
[PartyNetwork::ConnectChatControl](/services/playfab/multiplayer/networking/reference/classes/PartyNetwork/methods/partynetwork_connectchatcontrol)\
[PartyLocalChatControl::GetLanguage](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_getlanguage)\
[PartyLocalChatControl::SetTranscriptionOptions](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settranscriptionoptions)\
[PartyLocalChatControl::SetTranscriptionOptions](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settranscriptionoptions)


## Related topics

- [PartyDevice::GetChatControls](/zh-CN/services/playfab/multiplayer/networking/reference/classes/PartyDevice/methods/partydevice_getchatcontrols.md)
- [PartyManager::GetChatControls](/zh-CN/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_getchatcontrols.md)
- [PartyCreateChatControlCompletedStateChange](/zh-CN/services/playfab/multiplayer/networking/reference/structs/partycreatechatcontrolcompletedstatechange.md)
- [PartyLocalChatControl::GetLanguage](/zh-CN/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_getlanguage.md)
- [PartyChatControlCreatedStateChange](/zh-CN/services/playfab/multiplayer/networking/reference/structs/partychatcontrolcreatedstatechange.md)
