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);
        }