> ## Documentation Index
> Fetch the complete documentation index at: https://docs.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\*](https://docs.xbox.com/zh-CN/services/playfab/multiplayer/networking/reference/classes/PartyLocalUser/partylocaluser.md)

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

**`languageCode`**   [PartyString](https://docs.xbox.com/zh-CN/services/playfab/multiplayer/networking/reference/typedefs.md)\
*optional*

要使用的可选语言。

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

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

**`localChatControl`**   [PartyLocalChatControl\*\*](https://docs.xbox.com/zh-CN/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/partylocalchatcontrol.md)\
*optional, library-allocated output*

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

### Return value

PartyError

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

## Remarks

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

## Requirements

**Header:** Party.h

## See also

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


## Related topics

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