39 lines
1.1 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|