Автоповтор WAV файла в C # - PullRequest
       37

Автоповтор WAV файла в C #

1 голос
/ 17 октября 2008

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

Ответы [ 4 ]

3 голосов
/ 17 октября 2008

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

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

2 голосов
/ 17 октября 2008

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

0 голосов
/ 20 октября 2008

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

0 голосов
/ 17 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...