Pregunta

Tengo un archivo de onda de efecto de sonido de 10 segundos. Lo que me gustaría hacer es tomar ese archivo y repetirlo varias veces y luego guardar el archivo WAV más largo en el disco. De esta manera, puedo crear un efecto de fondo mucho más largo en lugar de repetirlo automáticamente en el reproductor multimedia, que está un poco tartamudeado entre repeticiones. Estoy tratando de hacer esto en C #.

¿Fue útil?

Solución

Si solo necesita hacer esto con una pequeña cantidad de archivos, también puede hacerlo a mano con Audacity .

Otros consejos

Eso es razonablemente fácil de hacer, dado el formato de archivo WAV - asumiendo que es audio sin comprimir (la mayoría de los archivos WAV son, o al menos, fueron la última vez que tuve algo que ver con ellos).

Es posible que haya API de audio que puede usar para hacer esto sin atascarse en el formato binario, pero sospecho que les tomará tanto tiempo aprenderlo, ya que no están haciendo nada particularmente complicado.

Si está utilizando .Net 2.0 o superior, puede usar el System.Media.SoundPlayer y específicamente su método PlayLooping para lograr lo que quieres sin tartamudear. Esto es preferible a crear un nuevo archivo wav: significa menos espacio en disco para el archivo y menos memoria necesaria para reproducir el sonido. En general, siempre debe usar técnicas de almacenamiento intermedio como esta para la reproducción de audio si el sonido se repite o dura más de unos segundos.

Puede hacerlo fácilmente en C # utilizando la NAudio .NET biblioteca de audio. Debería usar las clases WaveFileReader y WaveFileWriter . También puede usarlo para crear un WaveStream personalizado que reproducirá su audio tantas veces como desee sin la necesidad de crear un archivo WAV largo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top