J'ai une application Compact Framework 3.5 qui est responsable de l'analyse des codes à barres. Il y a 3 sons différents qu'il devrait jouer selon la situation, donc j'ai créé une classe wrapper autour de l'objet SoundPlayer et j'appelle la méthode Play sur ça.Lecture de fichiers wav intégrés avec SoundPlayer
public static class SoundEffectsPlayer
{
private static readonly SoundEffect _alert;
static SoundEffectsPlayer()
{
// This will cause the SoundEffect class to throw an error that the Uri
// Format is not supported, when new SoundPlayer(location) is called.
_alert = new SoundEffect("SoundEffects/alert.wav");
}
public static SoundEffect Alert
{
get { return _alert; }
}
}
public class SoundEffect
{
private readonly SoundPlayer _sound;
public SoundEffect(string location)
{
_sound = new SoundPlayer(location);
_sound.Load();
}
public bool IsLoaded
{
get { return _sound.IsLoadCompleted; }
}
public void Play()
{
_sound.Play();
}
}
L'idée était de ne pas créer SoundPlayer chaque fois qu'un code-barres nécessaire à numériser (ce qui serait quelques centaines de fois par heure). Je peux donc appeler Play sur le fichier déjà chargé.
Le fichier alert.wav se trouve dans un dossier SoundEffects situé à la racine du projet de bibliothèque référencé par l'application et défini comme ressource intégrée. De quoi aurais-je besoin pour passer dans la classe SoundEffects pour charger le fichier wav? Le fichier wav devrait-il être intégré dans le projet de bibliothèque?
Est-ce que quelqu'un remarque quelque chose de mal dans la façon dont je gère la lecture des fichiers wav? C'est ma première tentative pour quelque chose comme ça, donc je suis ouvert à des suggestions d'amélioration.
Merci, cela fonctionne très bien maintenant. – Brandon