1

我有一个 10 秒的音效波形文件。我想做的是获取该文件并重复 n 次,然后将较长的 WAV 文件保存到磁盘。这样,我可以创建更长的背景效果,而不是在媒体播放器上自动重复,这在重复之间有点卡顿。我正在尝试在 C# 中执行此操作。

4

4 回答 4

3

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

很可能有音频 API 可以用来执行此操作而不会陷入二进制格式,但我怀疑它们需要花很长时间来学习,因为您不需要做任何特别复杂的事情。

于 2008-10-16T20:10:48.037 回答
2

如果您只需要对少量文件执行此操作,您不妨使用Audacity手动执行此操作。

于 2008-10-16T20:18:31.937 回答
0

如果您使用的是 .Net 2.0 或更高版本,那么您可以使用System.Media.SoundPlayer类,特别是它的PlayLooping方法来实现您想要的,而不会卡顿。这比创建一个新的 wav 文件更可取——这意味着文件的磁盘空间更少,渲染声音所需的内存也更少。一般来说,如果声音将被循环播放或超过几秒钟,则应始终使用此类缓冲技术进行音频播放。

于 2008-10-17T14:16:30.730 回答
0

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

于 2008-10-19T20:35:16.520 回答