我正在尝试录制输入并将其与歌曲合并在一起(不是连接)。我有一把在听歌曲时录制的吉他,我想将吉他放在歌曲中(如 audcaity)。
有什么办法可以做到吗?如果无法进行实时混音 - 是否可以在录制后合并它们?就像我录制吉他后,现在它是一个 wav 文件,我想将 2 个 wav 文件混合在一起。
这就是输入设备:
private void Capture()
{
input = new WasapiCapture((MMDevice)inputCombo.SelectedItem);
bufferedWaveProvider = new BufferedWaveProvider(input.WaveFormat);
input.DataAvailable += WaveInOnDataAvailable;
input.StartRecording();
write = new WaveFileWriter(System.IO.Path.GetTempFileName(), input.WaveFormat);
}
private void WaveInOnDataAvailable(object sender, WaveInEventArgs e)
{
bufferedWaveProvider.AddSamples(e.Buffer, 0, e.BytesRecorded);
write.Write(e.Buffer, 0, e.BytesRecorded);
write.Flush();
}
我不想将其写入空白文件,而是想将其写入已存在的 wav 文件,而不是覆盖它。 MixingSampleProvider 可能吗?
这应该可以通过WaveMixerStream32
,例如像这样
var mixer = new WaveMixerStream32 { AutoStop = true};
var wav1 = new WaveFileReader(@"c:\...\1.wav");
var wav2 = new WaveFileReader(@"c:\...\2.wav");
mixer.AddInputStream(new WaveChannel32(wav1));
mixer.AddInputStream(new WaveChannel32(wav2));
WaveFileWriter.CreateWaveFile("mixed.wav", new Wave32To16Stream(mixer));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)