VSX-5 VSXMusic 编码听音乐
給VS寫個(gè)擴(kuò)展來聽音樂的說法,緣來已久,這兩天做了個(gè)初版,使用豆瓣FM,先發(fā)出來。
插件現(xiàn)在只做了VS2013的,別的版本有待下一步支持。
現(xiàn)在暫時(shí)只有一個(gè)Adornment(就是那個(gè)有封面的),一個(gè)Margin(編輯器最下面,準(zhǔn)備用來放歌詞,沒有做),一個(gè)Menu(最上面的菜單),一個(gè)ToolBar(工具欄啊,就那個(gè)提示播放的)。
只完成了播放功能,切換頻道準(zhǔn)備明天做,登錄功能也要后續(xù)完善。
關(guān)于豆瓣FM的WPF程序,做過的人也不少,這里對(duì)兩個(gè)項(xiàng)目有所參考并繼續(xù)參考,在這里列出:煙灰灰?和?kfstorm
現(xiàn)在比較反感DI、IoC,但是不知不覺又用了。
其實(shí)做這種VS擴(kuò)展很簡單,和擴(kuò)展有關(guān)的東西很少,應(yīng)用程序應(yīng)該怎么做,這里就怎么做,只不過寫的程序不是運(yùn)行主體罷了。
但是后續(xù)要做的還不少,首先Adornment這個(gè)東西,不應(yīng)該在每個(gè)TextView中包含一個(gè),也就是說應(yīng)該一個(gè)VS只有這一個(gè)出現(xiàn),所以這里不應(yīng)該使用IWpfTextViewCreationListener接口。
話又說回來,擴(kuò)展是對(duì)于VS擴(kuò)展的,同時(shí)打開幾個(gè)VS很常見,得想想辦法怎么做成統(tǒng)一控制之類的,用remoting什么的。
還需要一個(gè)Tool Window做主界面,需要Options Page,還要在快速啟動(dòng)(Ctrl + Q)那里弄個(gè)搜索歌曲,加上歌詞、用戶、快捷鍵支持等,后續(xù)可能還會(huì)增加播放本地音樂等功能,想想也有不少。
?
又說回MEF,在原來VSX項(xiàng)目中我又自己維護(hù)了一個(gè)IoC容器,但是VS擴(kuò)展本來就是使用MEF,翻看了不少項(xiàng)目,終于找到如下代碼片段:
var componentModel = (IComponentModel)_serviceProvider.GetService(typeof(SComponentModel)); var player = componentModel.DefaultExportProvider.GetExportedValue<IPlayer>();其中_serviceProvider就是IServiceProvider接口對(duì)象,VSX中最常見的Package就是一個(gè)IServiceProvider。
當(dāng)然,在使用Export導(dǎo)出的類,也就是MEF組件中,是直接可以使用Import特征來注入的。
?
這個(gè)項(xiàng)目不會(huì)花費(fèi)我太多功夫,只是興趣所致。希望同樣有興趣的人可以繼續(xù)做下去。
這里給出源碼:https://github.com/NanQi/VSXMusic
?
轉(zhuǎn)載于:https://www.cnblogs.com/nanqi/p/VSX-5_VSXMusic.html
總結(jié)
以上是生活随笔為你收集整理的VSX-5 VSXMusic 编码听音乐的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我弥留之际 - 许立志 (珍藏)
- 下一篇: [Everyday Mathematic