Music++

Music++ 公开

技艺 更新于 2022-09-07 15:05 | 12 | 95
如何安装动作?

适用于
分类
网络服务 组合操作 功能增强
redzerat 若人散秋将暮 --* toubet zryan 12 人赞了这个动作

1 个动作单 收藏了此动作。

更多信息
分享时间 2022-06-02 15:03
最后更新 2022-09-07 15:05
修订版本 1
限制再分享
Quicker版本 1.34.30
动作大小 265.5 KB

分享到

「内置音乐资源,简易音乐播放器」

简介

动作改至:Music+

 增加功能

  • 增加内置音乐资源,在线下载


心路历程:初学wpf前前后后,肝了半个多月

遇到了很多问题:

  1. 测试原动作怎么可以动态加入新的歌曲到列表里,小改ui(动作来源:感谢@zetalpha)
  2. UI基本布局,控件风格,以及怎么使用HandyControl样式(wpf模板:感谢@ceastld)
  3. ListView控件问题(绑定数据,表头显示,匹配内容长度,列表刷新,等)
  4. Image控件,显示封面(圆角,悬浮,网络图片的展现)
  5. Quicker调用方式,数据的交互方式,返回类型,类型转换等
  6. 数据源,原本是想要网易云作为api,github有很多开源项目写的太复杂整不出来,最后找到了MyFreeMp3这个网站
    1. 花了不好时间,没逆向出加密参数,最后嘛只能找别人的制作好的
    2. 虽然但是,在js编译器可以直接使用,但是Quicker的js模块,没有window全局变量花了点时间改了小改了下脚本(脚本:感谢@B站,我不是硕哥)
  7. 控件事件,因为Quicker不像vs那么的方便,所以事件代码代码都是通过C#进行操作的(基本上是委托)
  8. 搜索控件的数据传递
    1. 按道理来说在搜索栏里输入歌名,然后调用委托就可以了。但是因为这里是使用子程序的方式返回搜索结果的,委托的winContext参数传入不了,也就意味着无法使用子程序
    2. 只能曲线救国,通过创建一个界面中不存在的按钮,然后搜索栏调用按钮委托,按钮再通过OnButtonClicked函数从而实现效果
    3. 之后就是要解决怎么通过C#点击按钮,然后发现OnButtonClicked里面还是无法实现效果。最后发现哪怕按钮在界面中不显示,也是需要创建。然后通过查找控件的方式才能实现效果
  9. 到这里应该差不多了,之后实现的效果就是调用子程序,返回歌曲列表,添加到现有列表里,这很简单对吧(这里麻烦)
    1. 数据根本获取不到,界面直接卡住了,查询后可能是线程的问题,完全不懂,找源程序照猫画虎。终于可以成功的打开搜索界面了
    2. 打开搜索界面之后,返回的歌曲列表根本获取到。返回值后直接卡死Quicker。查询后异步调用之类的问题吧。中途Quicker整崩好多次,于是不出意外的收到了崔大的邮件
    3. 崔大不建议通过种方式调用,一层套一层容易出错。显然我没有采纳,不过在崔大的提示下,可能是线程死锁的问题。最终找了挺久答案终于解决了(感谢@CL)
  10. 完成以上步骤之后,之后就是代码的健壮性的一些小修小补,和基本的测试。
    1. 最后分享动作的时候发现太大了分享不了,又改了

    最后如果不出意外的话,这个程序应该还有很多问题,将就用吧

    最近更新

    修订版本 更新时间 更新说明
    1 2022-09-07 15:05 -fix 部分歌曲下载出错
    0 2022-06-02 15:03

    最近讨论

    随便聊聊 · 36
    zryan 2022-10-01 16:15 redzerat 28天8小时前