PartyLocalDevice::CreateChatControl

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

语法

PartyError CreateChatControl(  
    const PartyLocalUser* localUser,  
    PartyString languageCode,  
    void* asyncIdentifier,  
    PartyLocalChatControl** localChatControl  
)  

参数

localUser PartyLocalUser*

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

languageCode PartyString
可选

要使用的可选语言。

asyncIdentifier void*
可选

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

localChatControl PartyLocalChatControl*
可选、库分配的输出

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

返回值

PartyError

c_partyErrorSuccess如果异步操作开始创建聊天控件,则表示该操作已开始,否则则表示错误代码。 如果此方法失败,则不会生成任何相关的状态更改。 可通过 PartyManager::GetErrorMessage() 检索错误代码的可读形式。

备注

如果此方法返回成功,则将生成 PartyCreateChatControlCompletedStateChange 以提供异步操作的结果。 如果异步操作成功,则将生成 PartyChatControlCreatedStateChange。 如果操作失败,则将生成 PartyChatControlDestroyedStateChange。 该方法本身并不使聊天控制对任何远程设备可见。 若要向远程设备公布此聊天控件,游戏应调用 PartyNetwork::ConnectChatControl()

成功返回时,此方法会使之前由 PartyManager::GetChatControls()PartyDevice::GetChatControls() 为本地设备返回的所有数组内存失效,因为它将新的聊天控件同步添加到数组中。 PartyManager::StartProcessingStateChanges() 也会使这些数组的内存无效。 返回的 localChatControl 对象将一直有效,直到生成 PartyChatControlDestroyedStateChange,并且所有引用该对象的状态更改都已返回到 PartyManager::FinishProcessingStateChanges()

与该聊天控件相关的语言可以选择通过 languageCode 参数指定。 如果未指定语言,则将使用由平台确定的用户默认语言。 该语言用作与此聊天控件关联的听录语言和传入翻译的目标语言。 例如,如果指定的语言代码为 en-US,则此聊天控件的输入音频将被视为英语 (美国) 语言,并按此类转录。 如果通过 PartyLocalChatControl::SetTranscriptionOptions()PartyLocalChatControl::SetTextChatOptions() 启用翻译,传入的语音聊天转录和/或文本聊天将翻译为英语 (美国)。

语言代码应采用 BCP 47 格式;支持的语言代码已在语言支持中枚举。 指定不受支持的或无效的语言代码不会导致此方法失败,但会导致无法生成与此聊天控件关联的听录。 此方法使用的语言代码可以通过 PartyLocalChatControl::GetLanguage() 进行查询。

要求

标题: Party.h

另请参阅

PartyLocalDevice
PartyCreateChatControlCompletedStateChange
PartyChatControlCreatedStateChange
PartyChatControlDestroyedStateChange
PartyManager::GetChatControls
PartyDevice::GetChatControls
PartyNetwork::ConnectChatControl
PartyLocalChatControl::GetLanguage
PartyLocalChatControl::SetTranscriptionOptions
PartyLocalChatControl::SetTranscriptionOptions