Answers:
您可以尝试将麦克风中的数据提交给动态音效。
我只是写了一些代码来测试这一点,它可以工作。
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);
}
作为Martin答案的补充(尚无法评论,否则我只会这样做):
http://create.msdn.com/zh-CN/education/catalog/article/dynamic_audio