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

# 語音聊天疑難排解

> 使用聊天指示器、音訊裝置診斷與靜音狀態檢查，針對 PlayFab Party 語音聊天問題進行疑難排解，以修正玩家彼此聽不到聲音的問題。

如果兩位玩家嘗試一起聊天，但其中一方或雙方都聽不到對方的聲音，請嘗試下列疑難排解步驟。

## 檢查聊天指示器

PlayFab Party 的聊天指示器可用來針對音訊問題進行疑難排解。

使用 `PartyLocalChatControl::GetLocalChatIndicator()` 檢查本機聊天控制項的即時音訊狀態。狀況良好的聊天控制項應傳回 `PartyLocalChatControlChatIndicator::Silent` 或 `PartyLocalChatControlChatIndicator::Talking`，取決於程式庫是否從麥克風輸入偵測到語音。

* 如果傳回 `PartyLocalChatControlChatIndicator::AudioInputMuted`，表示聊天控制項的輸出音訊串流先前已透過呼叫 `PartyLocalChatControl::SetAudioInputMuted(true)` 設為靜音，必須呼叫 `PartyLocalChatControl::SetAudioInputMuted(false)` 來停用靜音

* 如果傳回 `PartyLocalChatControlChatIndicator::NoAudioInput`，表示從未透過呼叫 `PartyLocalChatControl::SetAudioInputMuted()` 設定本機聊天控制項的音訊輸入，或是音訊輸入初始化失敗。請繼續閱讀下一個[章節](#verify-that-the-audio-device-is-successfully-initialized)，以取得診斷音訊輸入初始化失敗的祕訣。

使用 `PartyLocalChatControl::GetChatIndicator()` 檢查遠端聊天控制項相對於本機聊天控制項的音訊輸入狀態。

* 如果在您預期應聽到音訊時傳回 `PartyChatControlChatIndicator::Silent`，這可能表示遠端音訊裝置發生問題，或遠端裝置上的聊天權限未設定為將音訊傳送至此聊天控制項。如果這聽起來像您遇到的情況，請繼續閱讀下列[章節](#verify-that-the-chat-controls-have-the-right-chat-permissions)。

* 如果傳回 `PartyChatControlChatIndicator::Talking`，但您仍然聽不到任何音訊，則本機音訊輸出裝置可能發生問題。請繼續閱讀下一個[章節](#verify-that-the-audio-device-is-successfully-initialized)，了解如何檢查音訊裝置是否狀況良好。

* 如果傳回 `PartyChatControlChatIndicator::IncomingVoiceDisabled`，表示本機聊天控制項的聊天權限尚未設定為允許來自遠端聊天控制項的音訊。請繼續閱讀[聊天權限](#verify-that-the-chat-controls-have-the-right-chat-permissions)章節。

* 如果傳回 `PartyChatControlChatIndicator::IncomingCommunicationsMuted`，表示傳入的音訊已透過先前呼叫 `PartyLocalChatControl::SetIncomingAudioMuted()` 設為靜音。請呼叫 `PartyLocalChatControl::SetIncomingAudioMuted()` 以取消遠端聊天控制項的靜音。

## 確認音訊裝置已成功初始化

在呼叫 `PartyLocalChatControl::SetAudioInput()` 或 `PartyLocalChatControl::SetAudioOutput()` 後不久，您會收到 `PartyLocalChatAudioInputChangedStateChange` 或 `PartyLocalChatAudioOutputChangedStateChange`。這兩種狀態變更都包含可協助您針對任何音訊裝置相關問題進行疑難排解的資訊。這些狀態變更包含 `PartyAudioInputState` 欄位和 `PartyAudioOutputState` 欄位，可提供音訊裝置狀態的相關資訊。如果音訊裝置的狀態不是 `Initialized`，表示 PlayFab Party 無法使用所需的音訊裝置。狀態變更上的 `errorDetail` 欄位也可用來取得有關此情況的進一步資訊。呼叫 `PartyManager::GetErrorMessage()` 以取得錯誤詳細資料的人類可讀形式。

<Note>
  根據預設，聊天控制項不會與任何音訊裝置建立關聯。請務必在所有聊天控制項上呼叫 `PartyLocalChatControl::SetAudioInput()` 和 `PartyLocalChatControl::SetAudioOutput()`。
</Note>

## 確認聊天控制項具有正確的聊天權限

使用 `PartyLocalChatControl::GetPermissions()` 查詢兩個聊天控制項之間的 `PartyChatPermissionOptions`。例如，如果使用者 Alice 聽不到另一位使用者 Bob 的聲音，您需要確認 Alice 具有接收來自 Bob 音訊的權限，且 Bob 具有將音訊傳送給 Alice 的權限。

在 Alice 的裝置上：

```cpp theme={null}
PartyChatPermissionOptions chatPermissions;
PartyError error = localChatControlAlice->GetPermissions(remoteChatControlBob, &chatPermissions);
if (PARTY_SUCCEEDED(error))
{
    if (static_cast<bool>(chatPermissions & PartyChatPermissionOptions::ReceiveAudio))
    {
        printf("Alice can receive audio from Bob!");
    }
}
```

在 Bob 的裝置上：

```cpp theme={null}
PartyChatPermissionOptions chatPermissions;
PartyError error = localChatControlBob->GetPermissions(remoteChatControlAlice, &chatPermissions);
if (PARTY_SUCCEEDED(error))
{
    if (static_cast<bool>(chatPermissions & PartyChatPermissionOptions::SendAudio))
    {
        printf("Bob can send audio to Alice!");
    }
}
```

## 檢查 Windows 中的預設裝置與預設通訊裝置

在 Windows 上，音訊常見的混淆點在於預設裝置與預設通訊裝置的概念。Windows 同時支援這兩種概念，而且它們可以是不同的裝置。依照設計，當 `AudioDeviceSelectionType::SystemDefault` 傳遞給 `PartyLocalChatControl::SetAudioInput` 或 `PartyLocalChatControl::SetAudioOutput` 時，PlayFab Party 在 Windows 版本的程式庫中會使用預設通訊裝置。疑難排解和測試應一律以預設通訊裝置為準。


## Related topics

- [XR-074 與 XBOX 及合作夥伴服務的連線中斷](/zh-TW/publishing/certification/xr/xr-074.md)
- [GDK 無障礙概覽](/zh-TW/build/game-principles/accessibility/accessibility-overview.md)
- [PlayFab Party 版本資訊](/zh-TW/services/playfab/multiplayer/networking/release-notes.md)
- [無障礙功能標籤](/zh-TW/build/game-principles/accessibility/accessibility-feature-tags.md)
- [语音聊天故障排除](/zh-CN/services/playfab/community/voice-communications/concepts-audio-troubleshooting.md)
