음성 채팅 문제 해결
두 플레이어가 함께 채팅을 시도하는데 둘 중 하나 또는 둘 다 서로를 들을 수 없는 경우 다음 문제 해결 단계를 시도해 보세요.
채팅 표시기 확인
PlayFab 파티의 채팅 표시기를 사용하여 오디오 문제를 해결할 수 있습니다.
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 파티가 원하는 오디오 장치를 사용할 수 없었음을 의미합니다. 상태 변경에 대한 errorDetail
필드를 사용하여 상황에 대한 추가 정보를 얻을 수도 있습니다.
PartyManager::GetErrorMessage()
을(를) 호출하여 사람이 읽을 수 있는 형식의 오류 세부 정보를 가져옵니다.
참고 항목
기본적으로 채팅 컨트롤은 오디오 장치와 연결되지 않습니다. 모든 채팅 컨트롤에서 PartyLocalChatControl::SetAudioInput()
및 PartyLocalChatControl::SetAudioOutput()
을(를) 호출해야 합니다.
채팅 컨트롤에 올바른 채팅 권한이 있는지 확인
PartyLocalChatControl::GetPermissions()
을(를) 사용하여 두 채팅 컨트롤 간의 PartyChatPermissionOptions
을(를) 조회합니다. 예를 들어 사용자 Alice가 다른 사용자 Bob을 들을 수 없는 경우, Alice에게 Bob으로부터 오디오를 수신할 수 있는 권한이 있고 Bob은 Alice에게 오디오를 보낼 수 있는 권한이 있는지 확인해야 합니다.
Alice의 장치에서:
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의 장치에서:
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 파티는 기본적으로 AudioDeviceSelectionType::SystemDefault
이(가) PartyLocalChatControl::SetAudioInput
또는 PartyLocalChatControl::SetAudioOutput
(으)로 전달 될 때 Windows 버전의 라이브러리에서 기본 통신 장치를 사용합니다. 문제 해결 및 테스트는 항상 기본 통신 장치와 관련하여 수행해야 합니다.