Files
kaiju/Assets/WasapiAudio/Scripts/Unity/WasapiAudioSource.cs
2022-03-25 16:20:41 +11:00

39 lines
1.1 KiB
C#

using Assets.WasapiAudio.Scripts.Core;
using UnityEngine;
namespace Assets.WasapiAudio.Scripts.Unity
{
[ExecuteInEditMode]
public class WasapiAudioSource : MonoBehaviour
{
private Core.WasapiAudio _wasapiAudio;
private float[] _spectrumData;
// Inspector Properties
public WasapiCaptureType CaptureType = WasapiCaptureType.Loopback;
public int SpectrumSize = 32;
public ScalingStrategy ScalingStrategy = ScalingStrategy.Sqrt;
public int MinFrequency = 100;
public int MaxFrequency = 20000;
public WasapiAudioFilter[] Filters;
public void Awake() {
// Setup loopback audio and start listening
_wasapiAudio = new Core.WasapiAudio(CaptureType, SpectrumSize, ScalingStrategy, MinFrequency, MaxFrequency, Filters, spectrumData =>
{
_spectrumData = spectrumData;
});
_wasapiAudio.StartListen();
}
public float[] GetSpectrumData() {
return _spectrumData;
}
void OnDestroy() {
_wasapiAudio?.StopListen();
}
}
}