Domanda

Ho un file wave di effetti sonori di 10 secondi. Quello che vorrei fare è prendere quel file e ripeterlo n numero di volte, quindi salvare il file WAV più lungo su disco. In questo modo posso creare un effetto di sfondo molto più lungo piuttosto che la ripetizione automatica sul lettore multimediale che è un po 'disturbato tra le ripetizioni. Sto provando a farlo in C #.

È stato utile?

Soluzione

Se hai solo bisogno di farlo con un piccolo numero di file, puoi farlo manualmente con Audacity .

Altri suggerimenti

È abbastanza facile da fare, dato il formato file WAV - supponendo che sia audio non compresso (la maggior parte dei file WAV lo sono - o almeno, erano l'ultima volta che ho avuto a che fare con loro).

Potrebbero esserci API audio che puoi usare per farlo senza rimanere bloccati nel formato binario, ma sospetto che impiegherebbero tanto tempo a imparare come a farlo da soli poiché non stai facendo nulla di particolarmente complicato.

Se si utilizza .Net 2.0 o versione successiva, è possibile utilizzare System.Media.SoundPlayer e in particolare la sua PlayLooping per ottenere ciò che desideri senza balbuzie. Questo è preferibile alla creazione di un nuovo file wav: significa meno spazio su disco per il file e meno memoria necessaria per il rendering del suono. In generale, dovresti sempre utilizzare tecniche bufferate come questa per la riproduzione audio se il suono verrà riprodotto in loop o è più lungo di qualche secondo.

Puoi farlo facilmente in C # usando la NAudio libreria audio .NET. Dovresti usare le classi WaveFileReader e WaveFileWriter . Puoi anche usarlo per creare un WaveStream personalizzato che eseguirà il loop dell'audio tutte le volte che vuoi senza la necessità di creare un lungo file WAV.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top