2016-06-13 2 views
1

캡처 한 오디오를 처리하고 마이크를 사용하려고합니다. 나는 그 모든 것을 할 수 있었지만 문제가 있습니다 ... 캡처 된 오디오가 자동으로 사용자에게 재생되며, 나는 그것을 원하지 않습니다.오디오를 재생하지 않고 캡처하십시오.

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); 
} 
+0

안녕하세요 Lulas, 당신이 있습니까? 당신은 대답을 틱해야합니다. – Fattie

답변

3

사람은 내가 다시 재생하지 않고 오디오를 캡처 할 수있는 방법을 알고?

1 .SET 매우 낮은 번호로 볼륨 :

이 작업을 수행하려면 두 가지 방법이 있습니다. 0이 될 수 없습니다.. 0.001f의 값은 완전히 좋습니다.

audioSrc.volume = 0.001f; 

편집기에서 작동합니다. Windows를 제외한 다른 플랫폼에서는 테스트되지 않습니다. 문제가있는 경우 방법 2를 사용하십시오. 완전히 음소거 오디오 다음 그것을 해결하기 위해 AudioMixer을 사용하지 않은 0.001f에 볼륨을 설정하는 경우


2 .Use AudioMixer 그것을

을 처리한다.

. AudioMixer를 만드십시오. 자산 --->만들기 --->오디오 믹서이고 이름은 "MicMixer"입니다.

. 믹서에서 새 그룹을 만들고 이름을 "MuteMic"으로 지정하십시오.

C .Change -80 해당 "MuteMic" 그룹의 감쇠.

D .Drag 당신의 마이크의를 AudioSource의 출력 슬롯 "MuteMic" 그룹. 그게 전부 야. GetOutputData은 스피커에서 소리가 나지 않아도 올바르게 작동합니다. 이것에 대한

애니메이션 GIF :

관련 문제