예제 #1
0
        private void cmbInputDevice_SelectedIndexChanged(object sender, EventArgs e)
        {
            AudioInputDevice selected = cmbInputDevice.SelectedItem as AudioInputDevice;

            if (selected != null)
            {
                audioInputDevice = selected.WaveInCapabilities.ProductGuid.ToString();
                inputMonitor.Start(audioInputDevice);
            }
            else
            {
                inputMonitor.Stop();
            }

            audioTriggerHits = 0;
            UpdateHits();
        }
예제 #2
0
    public void ScanForAudioInputDevices()
    {
        foreach (string deviceName in Microphone.devices)
        {
            if (!AudioDeviceKnown(deviceName))
            {
                int freqMax = 0;
                int freqMin = 0;
                Microphone.GetDeviceCaps(deviceName, out freqMin, out freqMax);
                AudioInputDevice tempAudioInputDevice = new AudioInputDevice(deviceName, freqMin, freqMax);

                //todo: put in some sort of console instead, inform user?
                Debug.Log($"Audio Input Device found: {deviceName}\n\tMinimum Frequency:{freqMin}\n\tMaximum Frequency:{freqMax}");

                KnownAudioInputDevices.Add(tempAudioInputDevice);
            }
        }

        //todo: actually pick one as apropriate - we can also just leave it null for default...
        CurrentActiveAudioInputDevice = KnownAudioInputDevices[0];
    }