Problembehandlung bei Sprachchat
Wenn zwei Spieler versuchen, miteinander zu chatten und einer oder beide sich nicht hören können, probieren Sie die folgenden Schritte zur Problembehandlung aus.
Überprüfen der Chatindikatoren
Die Chatindikatoren von PlayFab Party können verwendet werden, um Audioprobleme zu beheben.
Verwenden Sie PartyLocalChatControl::GetLocalChatIndicator()
, um den sofortigen Audiozustand des lokalen Chatsteuerelements zu überprüfen. Ein fehlerfreies Chat-Steuerelement sollte entweder PartyLocalChatControlChatIndicator::Silent
oder PartyLocalChatControlChatIndicator::Talking
zurückgeben, je nachdem, ob die Bibliothek die Sprache über die Mikrofoneingabe erkennt.
Wenn
PartyLocalChatControlChatIndicator::AudioInputMuted
zurückgegeben wird, wurde der ausgehende Audiodatenstrom des Chatsteuerelements zuvor über einen AnrufPartyLocalChatControl::SetAudioInputMuted(true)
an stummgeschaltet, und die Stummschaltung muss durch einen Anruf deaktiviert werden.PartyLocalChatControl::SetAudioInputMuted(false)
Wenn
PartyLocalChatControlChatIndicator::NoAudioInput
zurückgegeben wird, wurde entweder die Audioeingabe des lokalen Chat-Steuerelements nie durch einen AnrufPartyLocalChatControl::SetAudioInputMuted()
festgelegt, oder die Audioeingabe konnte nicht initialisiert werden. Fahren Sie mit dem nächsten Abschnitt fort, um Tipps zur Diagnose von Fehlern bei der Audioeingabeinitialisierung zu finden.
Verwenden Sie PartyLocalChatControl::GetChatIndicator()
, um den Audioeingabezustand eines Remotechat-Steuerelements relativ zu einem lokalen Chat-Steuerelement zu überprüfen.
Wenn
PartyChatControlChatIndicator::Silent
zurückgegeben wird, während Sie erwartet haben, Audio zu hören, kann dies bedeuten, dass ein Problem mit dem Remoteaudiogerät vorliegt oder dass die Chatberechtigungen auf dem Remotegerät nicht für das Senden von Audio an dieses Chatsteuerelement konfiguriert sind. Fahren Sie mit dem folgenden Abschnitt fort, wenn sich dies wie bei Ihnen anhört.Wenn
PartyChatControlChatIndicator::Talking
zurückgegeben wird, Sie aber keine Audiowiedergabe hören können, liegt möglicherweise ein Problem mit dem lokalen Audioausgabegerät vor. Fahren Sie mit dem nächsten Abschnitt fort, um zu erfahren, wie Sie überprüfen, ob ein Audiogerät fehlerfrei ist.Wenn
PartyChatControlChatIndicator::IncomingVoiceDisabled
zurückgegeben wird, bedeutet dies, dass für das lokale Chat-Steuerelement keine Chatberechtigungen konfiguriert wurden, um Audio von der Remotechatsteuerung zuzulassen. Fahren Sie mit dem Abschnitt "Chatberechtigungen " fort.Wenn
PartyChatControlChatIndicator::IncomingCommunicationsMuted
zurückgegeben wird, bedeutet dies, dass eingehende Audiodaten über einen vorherigen Aufruf vonPartyLocalChatControl::SetIncomingAudioMuted()
stummgeschaltet wurden. Rufen SiePartyLocalChatControl::SetIncomingAudioMuted()
auf, um die Stummschaltung der Remotechatsteuerung aufzuheben.
Überprüfen, ob das Audiogerät erfolgreich initialisiert wurde
Kurz nach dem Aufruf PartyLocalChatControl::SetAudioInput()
von oder PartyLocalChatControl::SetAudioOutput()
erhalten Sie eine PartyLocalChatAudioInputChangedStateChange
oder eine PartyLocalChatAudioOutputChangedStateChange
. Beide Zustandsänderungen enthalten Informationen, die Ihnen bei der Behandlung von Problemen im Zusammenhang mit Audiogeräten helfen können. Diese Zustandsänderungen enthalten ein PartyAudioInputState
Feld und ein PartyAudioOutputState
Feld, das Informationen zum Zustand des Audiogeräts enthält. Wenn der Status des Audiogeräts einen anderen als Initialized
aufweist, bedeutet dies, dass PlayFab Party das gewünschte Audiogerät nicht verwenden konnte. Das errorDetail
Feld zur Zustandsänderung kann auch verwendet werden, um weitere Informationen zur Situation zu erhalten. Rufen Sie auf PartyManager::GetErrorMessage()
, um die lesbare Form des Fehlerdetails zu erhalten.
Notiz
Standardmäßig werden Chatsteuerelemente keinem Audiogerät zugeordnet. Stellen Sie sicher, dass Sie und PartyLocalChatControl::SetAudioOutput()
auf allen Ihren Chatsteuerelementen anrufenPartyLocalChatControl::SetAudioInput()
.
Vergewissern Sie sich, dass die Chatsteuerelemente über die richtigen Chatberechtigungen verfügen.
Verwenden Sie PartyLocalChatControl::GetPermissions()
, um die PartyChatPermissionOptions
Steuerelemente zwischen zwei Chats nachzuschlagen. Wenn ein Benutzer Alice beispielsweise keinen anderen Benutzer Bob hören kann, sollten Sie sicherstellen, dass Alice über die Berechtigung zum Empfangen von Audio von Bob verfügt und dass Bob über die Berechtigung zum Senden von Audio an Alice verfügt.
Auf Alices Gerät:
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!");
}
}
Auf Bobs Gerät:
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!");
}
}
Überprüfen des Standardgeräts im Vergleich zum Standardkommunikationsgerät in Windows
Ein häufiger Verwirrungspunkt für Audio unter Windows liegt in bezug auf die Konzepte des Standardgeräts und des Standardkommunikationsgeräts. Windows unterstützt beide Konzepte, und es können unterschiedliche Geräte sein. PlayFab Party verwendet standardmäßig das Standardkommunikationsgerät in der Windows-Version der Bibliothek, wenn AudioDeviceSelectionType::SystemDefault
an PartyLocalChatControl::SetAudioInput
oder PartyLocalChatControl::SetAudioOutput
übergeben wird. Problembehandlung und Tests sollten immer in Bezug auf das Standardkommunikationsgerät ausgeführt werden.