Пример #1
0
        public BassAudioProvider(BassItem Device)
        {
            if (Device == null)
            {
                throw new ArgumentNullException();
            }

            Bass.RecordInit(Device.Id);

            var devInfo = Bass.RecordGetDeviceInfo(Device.Id);

            if (devInfo.IsLoopback)
            {
                var playbackDevice = FindPlaybackDevice(devInfo);

                if (playbackDevice != -1)
                {
                    Bass.Init(playbackDevice);
                    Bass.CurrentDevice = playbackDevice;

                    _silenceHandle = Bass.CreateStream(44100, 2, BassFlags.Default, Extensions.SilenceStreamProcedure);

                    Bass.ChannelSetAttribute(_silenceHandle, ChannelAttribute.Volume, 0);
                }
            }

            Bass.CurrentRecordingDevice = Device.Id;

            var info = Bass.RecordingInfo;

            _recordingHandle = Bass.RecordStart(info.Frequency, info.Channels, BassFlags.RecordPause, RecordProcedure);

            WaveFormat = new Wf(info.Frequency, 16, info.Channels);
        }
Пример #2
0
        protected NAudioProvider(IWaveIn WaveIn)
        {
            _waveIn = WaveIn;

            _waveIn.DataAvailable += (S, E) =>
            {
                DataAvailable?.Invoke(this, new DataAvailableEventArgs(E.Buffer, E.BytesRecorded));
            };

            var wf = WaveIn.WaveFormat;

            NAudioWaveFormat = wf;

            WaveFormat = wf.Encoding == WaveFormatEncoding.IeeeFloat
                ? WaveFormat.CreateIeeeFloatWaveFormat(wf.SampleRate, wf.Channels)
                : new WaveFormat(wf.SampleRate, wf.BitsPerSample, wf.Channels);
        }
        public IAudioFileWriter GetAudioFileWriter(string FileName, Captura.Audio.WaveFormat Wf, int AudioQuality)
        {
            var AudioArgsProvider = FFmpegAudioItem.Mp3;

            return(new FFmpegAudioWriter(FileName, AudioQuality, AudioArgsProvider, Wf.SampleRate, Wf.Channels));
        }