/// <summary> /// Get Device By Index. /// </summary> public static WasapiLoopbackDevice Get(int Device) { if (Singleton.ContainsKey(Device)) return Singleton[Device] as WasapiLoopbackDevice; WasapiDeviceInfo info; if (!(BassWasapi.GetDeviceInfo(Device, out info) && info.IsLoopback)) throw new ArgumentException("Invalid WasapiLoopbackDevice Index"); var dev = new WasapiLoopbackDevice(Device); Singleton.Add(Device, dev); return dev; }
/// <summary> /// Creates a new instance of <see cref="Loopback"/> capture. /// </summary> /// <param name="Device">The <see cref="WasapiLoopbackDevice"/> to use.</param> /// <param name="IncludeSilence">Whether to include Silence in the Capture.</param> public Loopback(WasapiLoopbackDevice Device, bool IncludeSilence = true) { _device = Device; if (IncludeSilence) { var playbackDevice = PlaybackDevice.Devices.First(Dev => Dev.Info.Driver == Device.Info.ID); _silencePlayer = new Silence(playbackDevice); } Device.Init(); Device.Callback += Processing; var info = Device.Info; AudioFormat = WaveFormat.FromParams(info.MixFrequency, info.MixChannels, Resolution.Float); }
/// <summary> /// Get Device By Index. /// </summary> public static WasapiLoopbackDevice Get(int Device) { if (Singleton.ContainsKey(Device)) { return(Singleton[Device] as WasapiLoopbackDevice); } WasapiDeviceInfo info; if (!(BassWasapi.GetDeviceInfo(Device, out info) && info.IsLoopback)) { throw new ArgumentException("Invalid WasapiLoopbackDevice Index"); } var dev = new WasapiLoopbackDevice(Device); Singleton.Add(Device, dev); return(dev); }