zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【安装软件的点点滴滴】
    【自然语言处理】LDA
    【sklearn】数据预处理 sklearn.preprocessing
    【sklearn】中文文档
    【MySql】update用法
    DotNet Core
    ASP.NET MVC
    ADO.NET
    RESTful API
    C#
  • 原文地址:https://www.cnblogs.com/nanqi/p/VSX-5_VSXMusic.html
Copyright © 2011-2022 走看看