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