题
我有一个10秒的音效波形文件。我想要做的是获取该文件并重复多次,然后将较长的WAV文件保存到磁盘。通过这种方式,我可以创建更长的背景效果,而不是在媒体播放器上自动重复,这在重复之间有点结果。我试图在C#中做到这一点。
解决方案
如果您只需要使用少量文件执行此操作,您也可以手动使用 Audacity 。
其他提示
考虑到 WAV文件格式,这很容易做到 - 假设它是未压缩的音频(大多数WAV文件是 - 或者至少,它们是我上次与它们有任何关系)。
你可以使用音频API来实现这一目标,而不会陷入二进制格式,但我怀疑他们需要花费很长时间才能学习,因为你没有做任何特别复杂的事情。 / p>
如果您使用的是.Net 2.0或更高版本,则可以使用 System.Media.SoundPlayer 类,特别是它的 PlayLooping 方法实现你想要的没有口吃。这比创建新的wav文件更好 - 这意味着文件的磁盘空间更少,渲染声音所需的内存更少。一般情况下,如果声音循环或超过几秒钟,你应该总是使用这样的缓冲技术进行音频播放。
您可以使用 NAudio .NET音频库在C#中轻松完成此操作。您需要使用 WaveFileReader
和 WaveFileWriter
类。您还可以使用它来创建自定义 WaveStream
,它可以根据需要多次循环您的音频,而无需创建长WAV文件。
不隶属于 StackOverflow