Вопрос

У меня есть 10-секундный волновой файл со звуковым эффектом.Я хотел бы взять этот файл и повторить его несколько раз, а затем сохранить более длинный WAV-файл на диск.Таким образом, я могу создать гораздо более длительный фоновый эффект вместо автоматического повтора в медиаплеере, который немного заикается между повторами.Я пытаюсь сделать это на C#.

Это было полезно?

Решение

Если вам нужно сделать это только с небольшим количеством файлов, вы можете сделать это вручную с помощью Мужество.

Другие советы

Это достаточно легко сделать, учитывая Формат файла WAV — при условии, что это несжатый звук (большинство файлов WAV — или, по крайней мере, они были в последний раз, когда я имел к ним какое-либо отношение).

Вполне возможно, что существуют звуковые API, которые вы можете использовать для этого, не зацикливаясь на двоичном формате, но я подозреваю, что их изучение займет столько же времени, сколько и просто выполнение этого самостоятельно, поскольку вы не делаете ничего особенно сложного.

Если вы используете .Net 2.0 или выше, вы можете использовать System.Media.SoundPlayer класс и конкретно его Играть в цикле метод достижения того, чего вы хотите, без заикания.Это предпочтительнее, чем создание нового wav-файла — это означает, что для файла потребуется меньше места на диске и меньше памяти, необходимой для рендеринга звука.В общем, вам всегда следует использовать такие методы буферизации для воспроизведения звука, если звук будет зациклен или длится более нескольких секунд.

Вы можете легко сделать это на C#, используя НАудио Аудиотека .NET.Вам нужно будет использовать WaveFileReader и WaveFileWriter занятия.Вы также можете использовать его для создания собственного WaveStream это будет зацикливать ваш звук столько раз, сколько вы захотите, без необходимости создавать длинный WAV-файл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top