2013-07-30 5 views
3

Я разрабатываю MP3-плеер в C# с помощью WPF.Создание музыкальной библиотеки и плейлистов в C#

Я успешно добавил воспроизведение, паузу, остановку, следующее, предыдущее и добавление файла в список.

Но каждый раз, когда я открываю плеер, мне нужно вручную добавлять файлы, используя кнопку добавления файла.

Что я хочу, так это то, что, как и iTunes, при открытии проигрывателя все файлы mp3 должны быть загружены из папки и показаны в «списке». (Как предварительно загруженная музыкальная библиотека)

Я не собираюсь использовать какую-либо базу данных.
Это можно сделать с помощью CSV-файла. Я попытался с кодом, указанным здесь How to create CSV Excel file C#?, но не смог заставить его работать правильно. (Было много проблем, и поэтому я не указываю его здесь)

Любая помощь приветствуется в этом направлении. Я открыт для новых подходов, если он решает мою проблему.

P.S. Я также хочу добавить функциональность создания пользовательского плейлиста из этой музыкальной библиотеки. Больше помощи в этом направлении также приветствуется.

+0

Что вы пытались до сих пор? Вы правы, файл CSV - хороший подход ... но я не вижу, как мы могли бы помочь, если вы не покажете нам свой код ... – DHN

+0

Я указал ссылку выше. Я использовал этот код с модификацией, что File.WriteAllText был заменен File.AppendAl lText, потому что WriteAllText заменяет старый файл новым. Также я хочу сохранить только уникальные значения в файле CSV. – Jagrut

ответ

0

Я бы предположил, что вы можете приблизиться к этому, в зависимости от масштаба того, что вы пытаетесь сделать.

Если вы действительно хотите просто перечислить все файлы в папке, используйте метод Directory.GetFiles (путь) - вы можете отфильтровать все, что не является файлом .mp3, и перечислить их.

Однако у меня такое чувство, что вы хотите создать отдельные плейлисты (исправьте меня, если я ошибаюсь), в таком случае вам нужно будет где-то хранить список файлов.

Я бы избежал CSV, потому что вы ограничены данными, которые можно хранить там. Я бы пошел на XML. Создайте XML, который выглядит примерно так:

<xml> 
<playlist name="playlist1"> 
    <file path="C:\file1.mp3"/> 
    <file path="C:\file2.mp3"/> 
    <file path="C:\file3.mp3"/> 
</playlist> 
</xml> 

Или храните все, что захотите. Создание XML-файлов с использованием XDocument довольно прямолинейно. Затем вы можете прочитать список файлов.

+0

Да, вы правы, что я хочу создать индивидуальный плейлист. Но, как и в iTunes, вы просто выбираете аудиофайлы из основной библиотеки песен, а затем перетаскиваете их в созданном плейлисте. Перетаскивание не требуется, но да, важно создать что-то из основной библиотеки. – Jagrut

+1

Отличный материал.Если вы можете создать список в C# из файлов, которые вы хотите включить в список воспроизведения, вы можете легко преобразовать его в XML (просто выполните некоторые исследования по созданию XML на C#). Как вы строите этот список, хотя полностью зависит от вас. Перетаскивание должно быть возможным, хотя в MSDN есть хорошая статья - [link] (http://msdn.microsoft.com/en-us/library/ms742859.aspx) – evilbhonda

0

Как говорит evilbhonda, вы можете использовать XML, но можете сохранить его в IsolatedStorage, который доступен для WPF. как использовать IsolatedStorage (хранение доступны только для applcia Isolated Storage simple demo Список треков может сериализовать в XML с использованием DataContracts, например:

[DataContract] 
public class MusicTrack 
{ 
    [DataMember] 
    public string TrackName { get; set; } 
    [DataMember] 
    public string TrackPath { get; set; } 
} 

сериализации и десериализации DataContracts описана здесь -> Serialization and Deserialization of DataContracts

Смежные вопросы