Represents a Wasapi Loopback Device.
Наследование: WasapiDevice
        /// <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;
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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);
        }