У меня есть приложение Compact Framework 3.5, которое отвечает за сканирование штрих-кодов. Есть три разных звука, которые он должен играть в зависимости от ситуации, поэтому я создал класс оболочки вокруг объекта SoundPlayer и вызвал метод Play.Воспроизведение встроенных wav-файлов с использованием 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();
}
}
Идея состояла в том, чтобы не создавать SoundPlayer каждый раз, когда штрих-код требуется для сканирования (что было бы несколько сотен раз в час). Поэтому я могу просто вызвать Play в уже загруженном файле.
Файл alert.wav находится в папке SoundEffects, которая находится в корне библиотеки проекта, к которой относится приложение, и она настроена как встроенный ресурс. Что мне нужно будет передать в класс SoundEffects для загрузки wav-файла? Должен ли файл wav быть встроен в проект библиотеки?
Также кто-нибудь замечает что-то неправильно с тем, как я обрабатываю игры в wav-файлах? Это моя первая попытка в чем-то подобном, поэтому я открыт для предложений по улучшению.
Спасибо, теперь он отлично работает. – Brandon