我有一个10秒的音效波形文件。我想要做的是获取该文件并重复多次,然后将较长的WAV文件保存到磁盘。通过这种方式,我可以创建更长的背景效果,而不是在媒体播放器上自动重复,这在重复之间有点结果。我试图在C#中做到这一点。

有帮助吗?

解决方案

如果您只需要使用少量文件执行此操作,您也可以手动使用 Audacity

其他提示

考虑到 WAV文件格式,这很容易做到 - 假设它是未压缩的音频(大多数WAV文件是 - 或者至少,它们是我上次与它们有任何关系)。

你可以使用音频API来实现这一目标,而不会陷入二进制格式,但我怀疑他们需要花费很长时间才能学习,因为你没有做任何特别复杂的事情。 / p>

如果您使用的是.Net 2.0或更高版本,则可以使用 System.Media.SoundPlayer 类,特别是它的 PlayLooping 方法实现你想要的没有口吃。这比创建新的wav文件更好 - 这意味着文件的磁盘空间更少,渲染声音所需的内存更少。一般情况下,如果声音循环或超过几秒钟,你应该总是使用这样的缓冲技术进行音频播放。

您可以使用 NAudio .NET音频库在C#中轻松完成此操作。您需要使用 WaveFileReader WaveFileWriter 类。您还可以使用它来创建自定义 WaveStream ,它可以根据需要多次循环您的音频,而无需创建长WAV文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top