从麦克风捕获音频而不回放
Capture audio from Microphone without playing it back
我正在尝试使用麦克风处理捕获的音频。我设法做到了所有这些,但我遇到了一个问题...我捕获的音频会自动播放给用户,我不希望这样。
audioSrc.clip = Microphone.Start(null, true, 1000, 44100);
while (!(Microphone.GetPosition(null) > 0)) { }
audioSrc.Play();
我尝试禁用音频侦听器并降低音频源的音量,但没有用。
有谁知道如何在不播放的情况下捕获音频?
编辑 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);
}
Anyone knows how I can capture audio without playing it back?
有两种方法可以做到这一点:
1。将音量设置为非常低的数字。 这不能是 0。 0.001f
的值完全没问题。
audioSrc.volume = 0.001f;
在编辑器中工作。除 Windows 外,未在任何其他平台上测试。有问题就用方法2。
2.使用AudioMixer处理
如果将音量设置为 0.001f
没有完全静音,请使用 AudioMixer
修复它。
A. 创建 AudioMixer。 Assets ---> Create ---> Audio Mixer and name is "MicMixer".
B.在混音器下创建新组并命名为"MuteMic".
C.将那个"MuteMic"组的衰减改为-80
.
D。将 "MuteMic" 组拖到麦克风的 AudioSource 的 Output投币口。而已。 GetOutputData
功能正常,扬声器没有发出任何声音。
此 gif 动画:
我正在尝试使用麦克风处理捕获的音频。我设法做到了所有这些,但我遇到了一个问题...我捕获的音频会自动播放给用户,我不希望这样。
audioSrc.clip = Microphone.Start(null, true, 1000, 44100);
while (!(Microphone.GetPosition(null) > 0)) { }
audioSrc.Play();
我尝试禁用音频侦听器并降低音频源的音量,但没有用。
有谁知道如何在不播放的情况下捕获音频?
编辑 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);
}
Anyone knows how I can capture audio without playing it back?
有两种方法可以做到这一点:
1。将音量设置为非常低的数字。 这不能是 0。 0.001f
的值完全没问题。
audioSrc.volume = 0.001f;
在编辑器中工作。除 Windows 外,未在任何其他平台上测试。有问题就用方法2。
2.使用AudioMixer处理
如果将音量设置为 0.001f
没有完全静音,请使用 AudioMixer
修复它。
A. 创建 AudioMixer。 Assets ---> Create ---> Audio Mixer and name is "MicMixer".
B.在混音器下创建新组并命名为"MuteMic".
C.将那个"MuteMic"组的衰减改为-80
.
D。将 "MuteMic" 组拖到麦克风的 AudioSource 的 Output投币口。而已。 GetOutputData
功能正常,扬声器没有发出任何声音。
此 gif 动画: