Задание
Создание медиаплеера на языке программирования 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; } }
Скриншот архива с проектом
Содержание архива
- исходный код программы
FootballLife