Question

J'ai un fichier son d'effet sonore de 10 secondes. Ce que je voudrais faire, c'est prendre ce fichier et le répéter n nombre de fois, puis sauvegarder le fichier WAV le plus long sur le disque. De cette façon, je peux créer un effet de fond beaucoup plus long plutôt que de répéter automatiquement sur le lecteur multimédia qui est un peu bégayé entre les répétitions. J'essaie de faire cela en C #.

Était-ce utile?

La solution

Si vous n'avez besoin que de cela pour un petit nombre de fichiers, vous pouvez également le faire à la main avec Audacity. .

Autres conseils

C'est assez facile à faire, compte tenu du format de fichier WAV - en supposant que ce soit de l'audio non compressé (la plupart des fichiers WAV le sont - ou du moins, c'était la dernière fois que j'ai eu affaire à eux).

Il est fort possible que certaines API audio vous permettent de le faire sans vous coincer dans le format binaire, mais je suppose qu'elles prendraient autant de temps à apprendre qu'à le faire vous-même, car vous ne faites rien de particulièrement compliqué.

Si vous utilisez .Net 2.0 ou une version ultérieure, vous pouvez utiliser le System.Media.SoundPlayer et plus particulièrement PlayLooping pour obtenir ce que vous voulez sans bégayer. Cela est préférable à la création d'un nouveau fichier wav - cela signifie moins d'espace disque pour le fichier et moins de mémoire pour restituer le son. En général, vous devez toujours utiliser des techniques de ce type pour la lecture audio si le son est en boucle ou dépasse les quelques secondes.

Vous pouvez le faire facilement en C # en utilisant la bibliothèque audio NAudio .NET. Vous devez utiliser les classes WaveFileReader et WaveFileWriter . Vous pouvez également l’utiliser pour créer un WaveStream personnalisé qui bouclera votre fichier audio autant de fois que vous le souhaitez sans avoir à créer un fichier WAV long.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top