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