簡體   English   中英

WPF和MusicPlayer

[英]WPF and MusicPlayer

我收到了創建具有特定功能的音樂播放器的請求。

此音樂播放器將播放“隨機”模式的音樂(第一個請求),從文件夾下載歌曲,另一個請求是每4小時更改音樂的“流派”,例如:

  • 從8am到12am:播放“浪漫”歌曲;
  • 從12am到4pm:播放“拉丁”歌曲;
  • 從4pm到8pm:播放“ Rock”歌曲;
  • 從晚上8點到午夜:播放“ Dance”音樂;

我的目的是為每個流派創建不同的歌曲文件夾,並指定各自的TitleName(浪漫,拉丁,搖滾等),並且音樂播放器在啟動時會在相應的時間段后自動下載歌曲的文件夾。

因此,我想向您咨詢一些有關代碼如何組織這些功能的建議,因為我不知道如何在數小時內改變流派音樂並將音樂播放器置於隨機狀態。

這是一種方法。

使用C#ID3庫或用於MP3文件的任何其他ID3標簽閱讀器,讀取播放列表或文件夾中排隊的MP3文件的所有ID3標簽。 探查播放列表,讀取ID3標簽,創建存儲庫。 設置計時器並從您已閱讀的回購中選擇一種類型

您說您正在從文件夾下載歌曲,這使我相信有一個服務器正在將信息傳送到媒體播放器。

我將邏輯放在服務器端。 只需使用任何常規的媒體播放器即可。

然后,在服務器端,生成某種類型的提要,該提要根據服務器上一天中的時間來提要下載的歌曲的URL(如果客戶端提供一個,則通過偏移量進行調整)。

然后,您的程序將讀取提要,並獲取要播放的歌曲的URL,然后根據服務器告訴您的內容,將播放列表提供給媒體播放器(或下載歌曲並將其提供給媒體播放器)。

在您的應用中顯示有用的一種概念是Song來源的概念。 歌曲來源從本質上講是可枚舉的項目,可提供對歌曲的訪問。 首先可以是一個接口。

這樣,您就可以理解一段提供歌曲列表的代碼的抽象概念。 實際的播放器將訪問ISongSource的任何實現,以播放下一首歌曲並進行播放。 發揮作用,恐怕我在這里不能為您提供幫助。 如果所有其他方法都失敗,則可以從歌曲源創建m3u文件(mp3播放列表),然后通過Process.Start啟動Winamp,例如傳遞新創建的播放列表。 實際上,這聽起來像是一個簡潔的版本1。

如果要編寫所有代碼,則可能需要一段代碼才能從mp3文件中讀取ID3標簽(如果正在播放mp3文件)。 您應該將其視為獨立的功能,並且可能已經有可用的功能。 ID3標記不是很復雜,如果我記得很好,在mp3文件的開頭有定義的字節偏移。

基於此,您應該能夠實現考慮了ID3標簽的歌曲源,以便確定哪些歌曲應成為該源的一部分。

最后是UI。 那就是整個世界本身,特別是如果您有皮膚的東西。 但是,只要擁有一本不錯的WPF書和一些概念證明,您就應該可以完成工作。

編碼愉快!

它必須是一個全新的媒體播放器嗎? 根據您的要求,您可以考慮包裝Windows Media Player來執行此操作。 這是一個很好的起點:

(Windows Media Player)Visual Basic .NET和C#的對象模型參考

我已經使用Windows Media Player SDK來執行類似的操作。 它不是最簡單的API,但只是一個DLL,向它發送命令以使WMP可以做些事情相對容易。 這是各種SDK版本的鏈接(其中包括您需要的wmppia.dll):

Windows Media下載

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM