> ## 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 ボイス チャットの問題をトラブルシューティングします。

2 人のプレイヤーが一緒にチャットしようとしていて、片方または両方がお互いの声を聞くことができない場合は、以下のトラブルシューティング手順を試してください。

## チャット インジケーターを確認する

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()` を使用して、2 つのチャット コントロール間の `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 は両方の概念をサポートしており、これらは異なるデバイスになる可能性があります。PlayFab Party は設計上、`PartyLocalChatControl::SetAudioInput` または `PartyLocalChatControl::SetAudioOutput` に `AudioDeviceSelectionType::SystemDefault` が渡されると、Windows 版ライブラリでは既定の通信デバイスを使用します。トラブルシューティングとテストは常に既定の通信デバイスに関連して行う必要があります。


## Related topics

- [XStore 開発のトラブルシューティング](/ja-jp/publishing/xstore-commerce/xstore-troubleshooting.md)
- [トラブルシューティング](/ja-jp/services/xbox-services/develop/troubleshooting/index.md)
- [サインインおよびサンドボックスエラーのトラブルシューティング](/ja-jp/services/xbox-services/develop/troubleshooting/live-troubleshoot-sandboxes.md)
- [XBOX Live Services API のトラブルシューティング](/ja-jp/services/xbox-services/develop/troubleshooting/live-troubleshooting-apis.md)
- [MPA 招待およびアクティビティのトラブルシューティング ガイド](/ja-jp/services/xbox-services/multiplayer/mpa/concepts/live-mpa-troubleshooting.md)
