internal VoiceSocket(DiscordConfig config, AudioServiceConfig audioConfig, JsonSerializer serializer, Logger logger) : base(config, serializer, logger) { _audioConfig = audioConfig; _decoders = new ConcurrentDictionary <uint, OpusDecoder>(); _targetAudioBufferLength = _audioConfig.BufferLength / 20; //20 ms frames _encodingBuffer = new byte[MaxOpusSize]; _ssrcMapping = new ConcurrentDictionary <uint, ulong>(); _encoder = new OpusEncoder(48000, _audioConfig.Channels, 20, _audioConfig.Bitrate, OpusApplication.MusicOrMixed); _sendBuffer = new VoiceBuffer((int)Math.Ceiling(_audioConfig.BufferLength / (double)_encoder.FrameLength), _encoder.FrameSize); }
internal VoiceWebSocket(DiscordClient client, AudioClient audioClient, JsonSerializer serializer, Logger logger) : base(client, serializer, logger) { _audioClient = audioClient; _config = client.Audio().Config; _decoders = new ConcurrentDictionary <uint, OpusDecoder>(); _targetAudioBufferLength = _config.BufferLength / 20; //20 ms frames _encodingBuffer = new byte[MaxOpusSize]; _ssrcMapping = new ConcurrentDictionary <uint, ulong>(); _encoder = new OpusEncoder(48000, _config.Channels, 20, _config.Bitrate, OpusApplication.Audio); _sendBuffer = new VoiceBuffer((int)Math.Ceiling(_config.BufferLength / (double)_encoder.FrameLength), _encoder.FrameSize); }
public AudioService( AudioServiceConfig audioServiceConfig, AudioSourceItem.Pool audioSourceItemPool) { _audioServiceConfig = audioServiceConfig; _audioSourceItemPool = audioSourceItemPool; _audioChannels = EnumHelper <AudioChannel> .Iterator .ToDictionary( audioChannel => audioChannel, audioChannel => new List <AudioSourceItem>()); _channelVolumes = EnumHelper <AudioChannel> .Iterator .ToDictionary( audioChannel => audioChannel, _audioServiceConfig.GetDefaultVolume); }
public AudioService( AudioServiceConfig audioServiceConfig, AudioSourceItem.Pool audioSourceItemPool, IAudioClipRepository <MusicAudioClipId> musicRepository, IAudioClipRepository <EffectAudioClipId> effectsRepository, IRandomNumberService randomNumberService) { _audioServiceConfig = audioServiceConfig; _audioSourceItemPool = audioSourceItemPool; _musicRepository = musicRepository; _effectsRepository = effectsRepository; _randomNumberService = randomNumberService; _audioChannels = EnumIterator <AudioChannel> .Iterator .ToDictionary( audioChannel => audioChannel, audioChannel => new List <AudioSourceItem>()); _channelVolumes = EnumIterator <AudioChannel> .Iterator .ToDictionary( audioChannel => audioChannel, _audioServiceConfig.GetDefaultVolume); }