Пример #1
0
        public Opus(AudioFormat audioFormat)
        {
            if (!audioFormat.IsValid())
            {
                throw new ArgumentException("Invalid audio format specified.", nameof(audioFormat));
            }

            this.AudioFormat = audioFormat;
            this.Encoder     = Interop.OpusCreateEncoder(this.AudioFormat);

            // Set appropriate encoder options
            var sig = OpusSignal.Auto;

            switch (this.AudioFormat.VoiceApplication)
            {
            case VoiceApplication.Music:
                sig = OpusSignal.Music;
                break;

            case VoiceApplication.Voice:
                sig = OpusSignal.Voice;
                break;
            }
            Interop.OpusSetEncoderOption(this.Encoder, OpusControl.SetSignal, (int)sig);
            Interop.OpusSetEncoderOption(this.Encoder, OpusControl.SetPacketLossPercent, 15);
            Interop.OpusSetEncoderOption(this.Encoder, OpusControl.SetInBandFec, 1);
            Interop.OpusSetEncoderOption(this.Encoder, OpusControl.SetBitrate, 131072);

#if !NETSTANDARD1_1
            this.ManagedDecoders = new List <OpusDecoder>();
#endif
        }
Пример #2
0
        // Token: 0x06000165 RID: 357 RVA: 0x00004858 File Offset: 0x00002A58
        public Opus(AudioFormat audioFormat)
        {
            if (!audioFormat.IsValid())
            {
                throw new ArgumentException("Invalid audio format specified.", "audioFormat");
            }
            this.AudioFormat = audioFormat;
            this.Encoder     = Interop.OpusCreateEncoder(this.AudioFormat);
            OpusSignal       value            = OpusSignal.Auto;
            VoiceApplication voiceApplication = this.AudioFormat.VoiceApplication;

            if (voiceApplication != VoiceApplication.Voice)
            {
                if (voiceApplication == VoiceApplication.Music)
                {
                    value = OpusSignal.Music;
                }
            }
            else
            {
                value = OpusSignal.Voice;
            }
            Interop.OpusSetEncoderOption(this.Encoder, OpusControl.SetSignal, (int)value);
            Interop.OpusSetEncoderOption(this.Encoder, OpusControl.SetPacketLossPercent, 15);
            Interop.OpusSetEncoderOption(this.Encoder, OpusControl.SetInBandFec, 1);
            Interop.OpusSetEncoderOption(this.Encoder, OpusControl.SetBitrate, 131072);
            this.ManagedDecoders = new List <OpusDecoder>();
        }