• 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

  • 相关阅读:
    Tile based Rendering 二 tbr and tbdr 优化建议tiled based deferred rendering
    手游项目可以考虑采用的图形技术
    raymarching
    unity lightmap
    transparent shadow caster unity
    winform学习-----理解小概念-20160517
    .net操作xml文件(新增.修改,删除,读取)---datagridview与xml文件
    参考XML操作类
    C#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)【转载】
    winform学习2-datagridview数据绑定
  • 原文地址:https://www.cnblogs.com/nanqi/p/VSX-5_VSXMusic.html
Copyright © 2020-2023  润新知