bool UAdvancedVoiceLibrary::MuteRemoteTalker(uint8 LocalUserNum, const FBPUniqueNetId& UniqueNetId, bool bIsSystemWide) { IOnlineVoicePtr VoiceInterface = Online::GetVoiceInterface(); if (!VoiceInterface.IsValid()) { UE_LOG(AdvancedVoiceLog, Warning, TEXT("Mute Remote Talker couldn't get the voice interface!")); return false; } return VoiceInterface->MuteRemoteTalker(LocalUserNum, *UniqueNetId.GetUniqueNetId(), bIsSystemWide); }
void FPlayerMuteList::ClientMutePlayer(APlayerController* OwningPC, const FUniqueNetIdRepl& MuteId) { const TSharedPtr<const FUniqueNetId>& PlayerIdToMute = MuteId.GetUniqueNetId(); // Add to the filter list on clients (used for peer to peer voice) AddIdToMuteList(VoicePacketFilter, PlayerIdToMute); // Use the local player to determine the controller id ULocalPlayer* LP = Cast<ULocalPlayer>(OwningPC->Player); if (LP != NULL) { UWorld* World = OwningPC->GetWorld(); IOnlineVoicePtr VoiceInt = Online::GetVoiceInterface(World); if (VoiceInt.IsValid()) { // Have the voice subsystem mute this player VoiceInt->MuteRemoteTalker(LP->GetControllerId(), *PlayerIdToMute, false); } } }