/// <summary> /// Stop Recording. /// </summary> public void Stop() { _silencePlayer?.Stop(); BassWasapi.CurrentDevice = _deviceIndex; BassWasapi.Stop(); RecordingStopped?.Invoke(this, new EndEventArgs(null)); }
protected virtual bool StopWASAPI(bool reset) { if (!BassWasapi.IsStarted) { Logger.Write(this, LogLevel.Debug, "WASAPI has not been started."); return(false); } Logger.Write(this, LogLevel.Debug, "Stopping WASAPI."); BassUtils.OK(BassWasapi.Stop(reset)); return(true); }
/// <summary> /// If device is null we will attempt default input index /// </summary> public static void StartInputCapture(WasapiInputDevice device) { int inputDeviceIndex = BassWasapi.DefaultInputDevice; AudioAnalysis.InputMode = AudioAnalysis.InputModes.WasapiDevice; if (device == null) { if (_inputDevices.Count == 0) { Log.Error("No wasapi input devices found"); return; } Log.Error($"Attempting default input {BassWasapi.DefaultInputDevice}."); device = _inputDevices[0]; } else { Log.Debug($"Initializing WASAPI audio input for {device.DeviceInfo.Name}... "); inputDeviceIndex = device.WasapiDeviceIndex; } Bass.Configure(Configuration.UpdateThreads, false); // Bass.Configure(Configuration.DeviceBufferLength, 1024); BassWasapi.Stop(); BassWasapi.Free(); if (!BassWasapi.Init(inputDeviceIndex, Frequency: 0, Channels: 0, //Flags: WasapiInitFlags.Buffer | WasapiInitFlags.Exclusive, Flags: WasapiInitFlags.Buffer, Buffer: (float)device.DeviceInfo.DefaultUpdatePeriod, Period: (float)device.DeviceInfo.DefaultUpdatePeriod, Procedure: _wasapiProcedure, User: IntPtr.Zero)) { Log.Error("Can't initialize WASAPI:" + Bass.LastError); return; } BassWasapi.Start(); AudioAnalysis.InputMode = AudioAnalysis.InputModes.WasapiDevice; }
private void SetEnableWasapi(bool enable) { if (!enable) { BassWasapi.Stop(); //BassWasapi.Free(); _timer.Stop(); _timer.IsEnabled = false; return; } if (!_initialized) { var str = _deviceList[_deviceIndex % _deviceList.Count]; var array = str.Split(' '); _wasapiDeviceIndex = Convert.ToInt32(array[0]); Log.Debug($"Initializing WASAPI for {str}... #{_wasapiDeviceIndex}"); if (!BassWasapi.Init(_wasapiDeviceIndex, Frequency: 0, Channels: 0, //Flags: WasapiInitFlags.Buffer | WasapiInitFlags.Exclusive, Flags: WasapiInitFlags.Buffer, Buffer: 1, //0.0041f/2, // was 1 Period: 1, //0.0041f/2, Procedure: _wasapiProcedure, User: IntPtr.Zero)) { Log.Error("Can't initialize WASAPI:" + Bass.LastError); return; } _initialized = true; } BassWasapi.Start(); System.Threading.Thread.Sleep(100); _timer.IsEnabled = true; _timer.Start(); }
public bool Stop(bool Reset = true) { BassWasapi.CurrentDevice = DeviceIndex; return(BassWasapi.Stop(Reset)); }