Nehmen Sie Audio vom Mikrofon auf, ohne es wiederzugeben
Ich versuche, ein Mikrofon zu verwenden und die aufgenommenen Audiodaten zu verarbeiten. Ich habe das alles geschafft, aber ich habe ein Problem ... Mein aufgenommenes Audio wird dem Benutzer automatisch wiedergegeben, und das möchte ich nicht.
audioSrc.clip = Microphone.Start(null, true, 1000, 44100);
while (!(Microphone.GetPosition(null) > 0)) { }
audioSrc.Play();
Ich habe versucht, den Audio-Listener zu deaktivieren und die Lautstärke der Audioquelle zu verringern, aber das hat nicht funktioniert.
Weiß jemand, wie ich Audio aufnehmen kann, ohne es wiederzugeben?
EDIT 1:
void Start()
{
GameObject a = new GameObject("AudioSource");
audioSrc = a.AddComponent<AudioSource>();
Instantiate(a);
string deviceName = Microphone.devices[0];
audioSrc.clip = Microphone.Start(deviceName, true, 1000, 44100);
audioSrc.volume = 0;
while (!(Microphone.GetPosition(null) > 0)) { }
audioSrc.Play();
}
void Update()
{
audioSrc.GetSpectrumData(spectrum, 0, FFTWindow.BlackmanHarris);
frq = findPitch(spectrum);
txtFreq.text = "Hz: " + frq;
trigger.update(Time.deltaTime, frq);
}