我试图做的是发挥循环WAV,但与特定的循环开始喜欢在音乐模块文件(。它,S3M。的.mod等所使用的样本位置)。 SoundPlayer没有这个功能,所以我创建了两个独立的文件:原始的wav和wav,开头切到循环开始的地方。我想连续播放这两个文件,无缝地,首先是带有PlaySync()的原始wav文件,然后是带有PlayLooping()的循环部分。声音播放和播放声音
不幸的是我PlaySync()第一个wav后,有一个分裂秒它和PlayLooping()开始播放循环wav之间的中断。打两个独立不同的声音时
private static void PlayThread(SoundPlayer soundPlayer, byte[] wav, byte[] loop)
{
MemoryStream stream1 = new MemoryStream(wav);
MemoryStream stream2 = new MemoryStream(loop);
soundPlayer.Stream = stream1;
soundPlayer.PlaySync();
// here is where the split second interruption occurs
soundPlayer.Stream = stream2;
soundPlayer.PlayLooping();
}
这可能不明显,但是,试图拉断的循环机制我想的时候是非常明显的。声音波形是乐器样本,非常小(通常不超过0x1000字节)。
我改变了我原来的职位描述完全是我想去完成。中断很快,一秒钟,但尝试执行我想要的循环机制时非常明显。我做了两个独立的流,但它仍然不起作用。 – giangurgolo
@giangurgolo没有问题,我编辑了我的答案,并包含另一个场景供您测试。 – Rastus7