コード例 #1
0
ファイル: VoiceSocket.cs プロジェクト: deoxysjr/MopsBot
 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);
 }
コード例 #2
0
 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);
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }