XNA에서 원시 사운드 데이터를 녹음 할 수 있습니까?


9

XNA 4에는 Microsoft.Xna.Framework.Audio가 포함되어 있습니다. 문서화 된 API를 통해 마이크에서 원시 사운드 데이터를 읽을 수있는 마이크 클래스 :

GetData- 마이크에서 가장 최근에 녹음 된 데이터를 가져옵니다.

GetSampleDuration- 버퍼 크기에 따라 오디오 재생 시간을 반환합니다.

GetSampleSizeInBytes- 이 마이크 객체에 대해 지정된 오디오 지속 시간을 유지하는 데 필요한 바이트 배열의 크기를 반환합니다.

이 클래스를 사용하여 사운드 데이터를 읽고 배열로 녹음 한 다음 재생할 수 있습니까? Xbox 360에서?

답변:


7

마이크에서 다이나믹 사운드 효과 로 데이터를 제출할 수 있습니다.

방금 이것을 테스트하는 코드를 작성했습니다. 작동합니다.

DynamicSoundEffectInstance sound;

protected override void Initialize()
{
    sound = new DynamicSoundEffectInstance(Microphone.Default.SampleRate, AudioChannels.Mono);

    Microphone.Default.BufferReady += (a, b) =>
    {
        byte[] data = new byte[Microphone.Default.GetSampleSizeInBytes(Microphone.Default.BufferDuration)];
        Microphone.Default.GetData(data);

        sound.SubmitBuffer(data);
    };
    Microphone.Default.Start();

    base.Initialize();
}

protected override void Update(GameTime gameTime)
{
    if (gameTime.TotalGameTime.TotalSeconds > 5)
    {
        Microphone.Default.Stop();
        sound.Play();
    }

    base.Update(gameTime);
}

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.