コード例 #1
0
 public WasapiAudio(WasapiCaptureType captureType, int spectrumSize, ScalingStrategy scalingStrategy, int minFrequency, int maxFrequency, WasapiAudioFilter[] filters, Action <float[]> receiveAudio)
 {
     _captureType     = captureType;
     _spectrumSize    = spectrumSize;
     _scalingStrategy = scalingStrategy;
     _minFrequency    = minFrequency;
     _maxFrequency    = maxFrequency;
     _filters         = filters;
     _receiveAudio    = receiveAudio;
 }
コード例 #2
0
    private void CheckCaptureParams()
    {
        bool freqChanged      = newMinFreq != minFreq || newMaxFreq != maxFreq;
        bool scalingChanged   = labelToScaling[scalingModeSelection.Selected] != scalingMode;
        bool deviceChanged    = labelToCapture[captureModeSelection.Selected] != captureMode;
        bool smoothingChanged = newSmoothing != smoothingIterations;

        if (freqChanged)
        {
            minFreq = newMinFreq;
            maxFreq = newMaxFreq;
        }
        if (scalingChanged)
        {
            scalingMode = labelToScaling[scalingModeSelection.Selected];
        }
        if (deviceChanged)
        {
            captureMode = labelToCapture[captureModeSelection.Selected];
        }
        if (freqChanged || scalingChanged || deviceChanged)
        {
            if (wasapiAudio != null && capturing)
            {
                wasapiAudio.StopListen();
            }
            InitializeWasapiCapture();
            if (capturing)
            {
                wasapiAudio.StartListen();
            }
        }
        if (smoothingChanged)
        {
            smoothingIterations = newSmoothing;
            InitializeSmoother();
        }
    }