2010-11-04 10 views
0

J'ai besoin de lire des clips audio de 30 secondes, 1 par seconde, en format winnet dotnet. Je suis en train de charger/lire les fichiers wav à partir du système de fichiers, ce qui fonctionne bien sur un ordinateur portable, mais provoque des problèmes sur un netbook. Puis-je pré-charger tous les fichiers son en mémoire, si oui, comment?Windows Forms dotnet .wav playback - besoin de précharger plusieurs fichiers wav en mémoire pour une lecture rapide

+0

Pouvez-vous ajouter un exemple pertinent de votre code actuel. – steinar

+0

pouvez-vous poster du code pour le chargement de fichiers WAV à partir du système de fichiers? – MedicineMan

Répondre

0

Je suis enclin à dire que vous chargeriez le fichier dans un fichier system.io.memorystream de quelque sorte. Espérons que les bibliothèques qui jouent votre fichier, prendront un flux de mémoire ou de la mémoire peut être converti en la structure de données que cette bibliothèque prend.

1

Si vous utilisez SoundPlayer pour lire vos fichiers, vous pouvez précharger le fichier avec SoundPlayer.Load.

SoundPlayer sp = new SoundPlayer("filename"); 
sp.Load(); // preload 
sp.Play(); 

Edit:
Comme indiqué par la documentation que vous pouvez également utiliser SoundPlayer.LoadAsync pour charger le son en arrière-plan.

0

Voici un exemple récent qui crée un fichier .wav (un sinus) dans la mémoire entièrement à partir de zéro et le joue. Ce que vous essayez de faire devrait être beaucoup plus simple, et vous devriez être capable de le déduire de l'échantillon affiché.

Real low level sound generation in C#?