VSX-5 VSXMusic 編碼聽音樂


給VS寫個擴展來聽音樂的說法,緣來已久,這兩天做了個初版,使用豆瓣FM,先發出來。

插件現在只做了VS2013的,別的版本有待下一步支持。

現在暫時只有一個Adornment(就是那個有封面的),一個Margin(編輯器最下面,准備用來放歌詞,沒有做),一個Menu(最上面的菜單),一個ToolBar(工具欄啊,就那個提示播放的)。

只完成了播放功能,切換頻道准備明天做,登錄功能也要后續完善。

關於豆瓣FM的WPF程序,做過的人也不少,這里對兩個項目有所參考並繼續參考,在這里列出:煙灰灰 和 kfstorm

現在比較反感DI、IoC,但是不知不覺又用了。

其實做這種VS擴展很簡單,和擴展有關的東西很少,應用程序應該怎么做,這里就怎么做,只不過寫的程序不是運行主體罷了。

但是后續要做的還不少,首先Adornment這個東西,不應該在每個TextView中包含一個,也就是說應該一個VS只有這一個出現,所以這里不應該使用IWpfTextViewCreationListener接口。

話又說回來,擴展是對於VS擴展的,同時打開幾個VS很常見,得想想辦法怎么做成統一控制之類的,用remoting什么的。

還需要一個Tool Window做主界面,需要Options Page,還要在快速啟動(Ctrl + Q)那里弄個搜索歌曲,加上歌詞、用戶、快捷鍵支持等,后續可能還會增加播放本地音樂等功能,想想也有不少。

 

又說回MEF,在原來VSX項目中我又自己維護了一個IoC容器,但是VS擴展本來就是使用MEF,翻看了不少項目,終於找到如下代碼片段:

var componentModel = (IComponentModel)_serviceProvider.GetService(typeof(SComponentModel));
var player = componentModel.DefaultExportProvider.GetExportedValue<IPlayer>();

其中_serviceProvider就是IServiceProvider接口對象,VSX中最常見的Package就是一個IServiceProvider。

當然,在使用Export導出的類,也就是MEF組件中,是直接可以使用Import特征來注入的。

 

這個項目不會花費我太多功夫,只是興趣所致。希望同樣有興趣的人可以繼續做下去。

這里給出源碼:https://github.com/NanQi/VSXMusic

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM