檢查聊天指示器
PlayFab Party 的聊天指示器可用來針對音訊問題進行疑難排解。 使用PartyLocalChatControl::GetLocalChatIndicator() 檢查本機聊天控制項的即時音訊狀態。狀況良好的聊天控制項應傳回 PartyLocalChatControlChatIndicator::Silent 或 PartyLocalChatControlChatIndicator::Talking,取決於程式庫是否從麥克風輸入偵測到語音。
-
如果傳回
PartyLocalChatControlChatIndicator::AudioInputMuted,表示聊天控制項的輸出音訊串流先前已透過呼叫PartyLocalChatControl::SetAudioInputMuted(true)設為靜音,必須呼叫PartyLocalChatControl::SetAudioInputMuted(false)來停用靜音 -
如果傳回
PartyLocalChatControlChatIndicator::NoAudioInput,表示從未透過呼叫PartyLocalChatControl::SetAudioInputMuted()設定本機聊天控制項的音訊輸入,或是音訊輸入初始化失敗。請繼續閱讀下一個章節,以取得診斷音訊輸入初始化失敗的祕訣。
PartyLocalChatControl::GetChatIndicator() 檢查遠端聊天控制項相對於本機聊天控制項的音訊輸入狀態。
-
如果在您預期應聽到音訊時傳回
PartyChatControlChatIndicator::Silent,這可能表示遠端音訊裝置發生問題,或遠端裝置上的聊天權限未設定為將音訊傳送至此聊天控制項。如果這聽起來像您遇到的情況,請繼續閱讀下列章節。 -
如果傳回
PartyChatControlChatIndicator::Talking,但您仍然聽不到任何音訊,則本機音訊輸出裝置可能發生問題。請繼續閱讀下一個章節,了解如何檢查音訊裝置是否狀況良好。 -
如果傳回
PartyChatControlChatIndicator::IncomingVoiceDisabled,表示本機聊天控制項的聊天權限尚未設定為允許來自遠端聊天控制項的音訊。請繼續閱讀聊天權限章節。 -
如果傳回
PartyChatControlChatIndicator::IncomingCommunicationsMuted,表示傳入的音訊已透過先前呼叫PartyLocalChatControl::SetIncomingAudioMuted()設為靜音。請呼叫PartyLocalChatControl::SetIncomingAudioMuted()以取消遠端聊天控制項的靜音。
確認音訊裝置已成功初始化
在呼叫PartyLocalChatControl::SetAudioInput() 或 PartyLocalChatControl::SetAudioOutput() 後不久,您會收到 PartyLocalChatAudioInputChangedStateChange 或 PartyLocalChatAudioOutputChangedStateChange。這兩種狀態變更都包含可協助您針對任何音訊裝置相關問題進行疑難排解的資訊。這些狀態變更包含 PartyAudioInputState 欄位和 PartyAudioOutputState 欄位,可提供音訊裝置狀態的相關資訊。如果音訊裝置的狀態不是 Initialized,表示 PlayFab Party 無法使用所需的音訊裝置。狀態變更上的 errorDetail 欄位也可用來取得有關此情況的進一步資訊。呼叫 PartyManager::GetErrorMessage() 以取得錯誤詳細資料的人類可讀形式。
根據預設,聊天控制項不會與任何音訊裝置建立關聯。請務必在所有聊天控制項上呼叫
PartyLocalChatControl::SetAudioInput() 和 PartyLocalChatControl::SetAudioOutput()。確認聊天控制項具有正確的聊天權限
使用PartyLocalChatControl::GetPermissions() 查詢兩個聊天控制項之間的 PartyChatPermissionOptions。例如,如果使用者 Alice 聽不到另一位使用者 Bob 的聲音,您需要確認 Alice 具有接收來自 Bob 音訊的權限,且 Bob 具有將音訊傳送給 Alice 的權限。
在 Alice 的裝置上:
檢查 Windows 中的預設裝置與預設通訊裝置
在 Windows 上,音訊常見的混淆點在於預設裝置與預設通訊裝置的概念。Windows 同時支援這兩種概念,而且它們可以是不同的裝置。依照設計,當AudioDeviceSelectionType::SystemDefault 傳遞給 PartyLocalChatControl::SetAudioInput 或 PartyLocalChatControl::SetAudioOutput 時,PlayFab Party 在 Windows 版本的程式庫中會使用預設通訊裝置。疑難排解和測試應一律以預設通訊裝置為準。