2013-07-30 78 views
3

我正在使用WPF在C#中開發MP3播放器。在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(path)方法 - 您可以過濾掉任何不是.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> 

或者存儲您想要的任何內容。使用XDocument創建XML文件非常簡單。然後你可以從那裏讀取文件列表。

+0

是的你是對的,我想建立個人播放列表。但是,因爲它在iTunes中,所以您只需從主歌曲庫中選擇音頻文件,然後將其拖放到您創建的播放列表中。拖放不是必需的,但是從主庫創建東西很重要。 – Jagrut

+1

好東西。如果您可以在要包含在播放列表中的C#文件中創建列表,則可以相當容易地將其轉換爲XML(僅對C#中的XML創建進行一些研究)。您如何構建該列表完全取決於您。儘管拖放應該是可能的 - MSDN有一個很好的文章 - [鏈接](http://msdn.microsoft.com/en-us/library/ms742859.aspx) – evilbhonda

0

正如evilbhonda所說,您可以使用XML,但可以將其存儲在可用於WPF的IsolatedStorage中。 如何使用IsolatedStorage(可用存儲僅供applcia Isolated Storage simple demo軌道 名單可序列化到使用DataContracts例如XML:

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

序列化和DataContracts的反序列化在此說明 - > Serialization and Deserialization of DataContracts