Задание
Создание медиаплеера на языке программирования C#. Поддерживающего 3 расширения воспроизводимых файлов mp3, wav, wma.
Функционал программы
- Запуск и приостановка воспроизведения.
- Перематывание песни на любые промежутки.
- Повторное и случайное воспроизведение.
- Наличие плей-листа. Плей-лист генерируется после выбора песни. Он содержит все песни, которые располагаются в папке с выбранной песней. При этом файлы неподходящих форматов игнорируются.
- Отображение названия песни и ее общую длительность.
Использованные технологии:
- C# + WPF(MVVM);
Фрагмент программного кода
/// <summary>
/// Считывание файлов из выбранной папки
/// </summary>
[RelayCommand]
private void LoadPlaylist()
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Audio Files|*.mp3; *.wav; *.wma";
if (openFileDialog.ShowDialog() == true)
{
var defaultSoundImage = Resources.Resources.DefaultImageData;
List<Sound> soundsData = new();
var directory = Path.GetDirectoryName(openFileDialog.FileName);
var files = Directory.GetFiles(directory).Where(file => Path.GetExtension(file) == ".mp3" || Path.GetExtension(file) == ".wav" || Path.GetExtension(file) == ".wma").ToList();
for(int i = 0; i < files.Count; i++)
{
TagLib.File info = TagLib.File.Create(files[i]);
var sound = new Sound()
{
FilePath = files[i],
Artist = string.Join(',', info.Tag.Artists),
Title = info.Tag.Title,
Picture = info.Tag.Pictures.Length > 0 ? info.Tag.Pictures[0].Data.Data : defaultSoundImage
};
soundsData.Add(sound);
if (files[i] == openFileDialog.FileName)
{
CurrentSound = sound;
}
}
Sounds = CollectionViewSource.GetDefaultView(soundsData);
IsTimeVisible = true;
}
}
Скриншот архива с проектом

Содержание архива
- исходный код программы
Телеграм
-