private VoipReceiver CreatePlayerVoipReceiver(string userId, IConnectedPlayer player) { Plugin.Log?.Info($"CreatePlayerVoipReceiver: {player.userId}"); if (userId != player.userId) { Plugin.Log?.Warn($"Creating VoipReceiver for {player.userId}, but provided userId doesn't match."); userId = player.userId; } VoipReceiver voipReceiver = _container.InstantiateComponentOnNewGameObject <VoipReceiver>($"VoipReceiver_{player.userId}"); // TODO: Initialize after receiving codec information from sender. voipReceiver.Initialize(player, CodecFactory.CreateDecoder(Codecs.Opus.OpusDefaults.CodecId)); return(voipReceiver); }
/// <summary> /// Bind the VoipReceiver to a player GameObject (for eventual spacial audio and 'IsTalking' icon over head). /// </summary> /// <param name=""></param> private void BindReceiver(VoipReceiver receiver) { // Set parent transform? }
private VoipReceiver GetVoipReceiverForId(IConnectedPlayer player) { VoipReceiver receiver = PlayerReceivers.GetOrAdd(player.userId, CreatePlayerVoipReceiver, player); return(receiver); }