C# 믹싱 오디오 및 마이크 마이크 동시 녹화
2105 단어 SharpCapture
라이센스 설정
1단계: 에서 SharpCapture를 참조했습니다.dll 이후, SharpCapture 방법을 호출하기 전에 반드시 아래 코드를 통해 권한 수여 정보를 설정해야 하며, 시험판이라면 Test를 직접 입력하면 된다.KeyMgr.SetKey("Test");
IMixer 샘플 가져오기
앞의 블로그에서 우리는 한 장의 그림으로 SharpCapture를 이해했다. 그 글에서 알 수 있듯이 SharpCapture는 IMixer를 통해 믹스를 한다. 믹스는 사운드카드의 소리와 마이크의 소리를 같은 소리로 녹음하여 후속 처리를 편리하게 하는 것을 말한다.그러면 어떻게 이 인터페이스의 예시를 얻어서 이 인터페이스가 제공하는 각 방법을 사용합니까?다음 코드를 확인하십시오.// ,
microphone = CaptureFactory.GetMicrophoneCapture(0);
//
soundcard = CaptureFactory.GetSoundcardCapture();
//
mixer = CaptureFactory.GetAudioMixter(microphone, soundcard, SoundcardMixMode.DoubleChannel, true);
믹서기는 당신이 사운드카드 채집기와 마이크 채집기를 전송하고 믹스를 설정하는 방식을 필요로 합니다. 예를 들어 여기는 좌우 사운드가 믹스에 참여하고 출력할 때 이중 사운드를 보존합니다.어떻게 설정해야 할지 모르면 이 설정을 사용하면 됩니다.
바인딩 이벤트
IMixer의 예제를 가져오면 바인딩 이벤트인 MixedAudio DataCaptured입니다.엔진이 소리 데이터를 수집하고 믹스할 때마다 이 이벤트의 응답 함수에 데이터를 넘기면 다음 처리를 할 수 있습니다. 예를 들어 오디오 파일로 저장할 수 있습니다. // , ,
mixer.AudioMixed += new SGDelegate(MixedAudioDataCaptured);
처리 데이터
사운드 바이트 흐름을 가져온 후 후속 처리를 할 수 있습니다.///
///
///
///
public void MixedAudioDataCaptured(byte[] audioData)
{
if (this.InvokeRequired)
{
this.BeginInvoke(new SGDelegate(MixedAudioDataCaptured), audioData);
}
else
{
// wav
if (mixWav != null)
{
mixWav.WriteAudioData(audioData);
}
}
}
채집을 시작하다
상술한 절차를 마치면 채집을 시작할 수 있습니다.다음과 같습니다.//
microphone.Start();
soundcard.Start();
채집을 멈추다
다음 코드를 사용하여 채집을 중지할 수 있습니다.//
microphone.Stop();
soundcard.Stop();
demo 소스 다운로드
클릭하여 원본 다운로드
KeyMgr.SetKey("Test");
앞의 블로그에서 우리는 한 장의 그림으로 SharpCapture를 이해했다. 그 글에서 알 수 있듯이 SharpCapture는 IMixer를 통해 믹스를 한다. 믹스는 사운드카드의 소리와 마이크의 소리를 같은 소리로 녹음하여 후속 처리를 편리하게 하는 것을 말한다.그러면 어떻게 이 인터페이스의 예시를 얻어서 이 인터페이스가 제공하는 각 방법을 사용합니까?다음 코드를 확인하십시오.
// ,
microphone = CaptureFactory.GetMicrophoneCapture(0);
//
soundcard = CaptureFactory.GetSoundcardCapture();
//
mixer = CaptureFactory.GetAudioMixter(microphone, soundcard, SoundcardMixMode.DoubleChannel, true);
믹서기는 당신이 사운드카드 채집기와 마이크 채집기를 전송하고 믹스를 설정하는 방식을 필요로 합니다. 예를 들어 여기는 좌우 사운드가 믹스에 참여하고 출력할 때 이중 사운드를 보존합니다.어떻게 설정해야 할지 모르면 이 설정을 사용하면 됩니다.
바인딩 이벤트
IMixer의 예제를 가져오면 바인딩 이벤트인 MixedAudio DataCaptured입니다.엔진이 소리 데이터를 수집하고 믹스할 때마다 이 이벤트의 응답 함수에 데이터를 넘기면 다음 처리를 할 수 있습니다. 예를 들어 오디오 파일로 저장할 수 있습니다. // , ,
mixer.AudioMixed += new SGDelegate(MixedAudioDataCaptured);
처리 데이터
사운드 바이트 흐름을 가져온 후 후속 처리를 할 수 있습니다.///
///
///
///
public void MixedAudioDataCaptured(byte[] audioData)
{
if (this.InvokeRequired)
{
this.BeginInvoke(new SGDelegate(MixedAudioDataCaptured), audioData);
}
else
{
// wav
if (mixWav != null)
{
mixWav.WriteAudioData(audioData);
}
}
}
채집을 시작하다
상술한 절차를 마치면 채집을 시작할 수 있습니다.다음과 같습니다.//
microphone.Start();
soundcard.Start();
채집을 멈추다
다음 코드를 사용하여 채집을 중지할 수 있습니다.//
microphone.Stop();
soundcard.Stop();
demo 소스 다운로드
클릭하여 원본 다운로드
// , ,
mixer.AudioMixed += new SGDelegate(MixedAudioDataCaptured);
사운드 바이트 흐름을 가져온 후 후속 처리를 할 수 있습니다.
///
///
///
///
public void MixedAudioDataCaptured(byte[] audioData)
{
if (this.InvokeRequired)
{
this.BeginInvoke(new SGDelegate(MixedAudioDataCaptured), audioData);
}
else
{
// wav
if (mixWav != null)
{
mixWav.WriteAudioData(audioData);
}
}
}
채집을 시작하다
상술한 절차를 마치면 채집을 시작할 수 있습니다.다음과 같습니다.//
microphone.Start();
soundcard.Start();
채집을 멈추다
다음 코드를 사용하여 채집을 중지할 수 있습니다.//
microphone.Stop();
soundcard.Stop();
demo 소스 다운로드
클릭하여 원본 다운로드
//
microphone.Start();
soundcard.Start();
다음 코드를 사용하여 채집을 중지할 수 있습니다.
//
microphone.Stop();
soundcard.Stop();