本帖最后由 搞起 于 2014-11-7 01:16 编辑 源码托管于Git@OSC 豆瓣FM第三方客户端14年11月02日 更新 1.2.1 build 20141102 更新记录: 1) 使用gdip画动态音乐频谱 2) 增加均衡器设置 3) 播放列表及历史记录增加红心按钮 4) 修复bug,进一步减少内存占用,减少假死次数 ![]() ![]() =============================================== 豆瓣FM第三方客户端14年10月07日 更新 1.2 build 20141007 更新记录: 1) 使用bass音频库播放MP3,不再需要Windows Media Player 2) 进一步减少内存占用,减少假死次数 使用bass之后,以前经常导致假死的apng动画也正常了。 =============================================== 豆瓣FM第三方客户端14年8月25日 更新 1.1.0 build 20140825 更新记录: 1) 增加频道、歌手、专辑的搜索与收藏 2) 添加只听当前艺术家或当前专辑乐曲的功能 3) 添加单曲循环功能 4) 右下角弹窗可以设置关闭 5) 悬浮窗口增加播放及暂停控制 6) 可设置下载歌曲是是否同时下载歌词 源码下载地址:http:///app/source/doubanFM.20140825.7z 【已知bug】在部分win7系统的电脑上,apng动画图片会导致假死。解决办法:1)最小化并恢复;2)通过快捷键操作软件;3)增加运行参数noapng。求高手赐教解决方案! ![]() ![]() =============================================== 豆瓣FM第三方客户端14年1月12日 更新 --修复 不能设置热键为空及因为注销热键错误而无法退出的bug --修复 下载歌曲时的bug --完善 新的自动更新方法:复制自身到系统临时目录 20140101源码下载: http:///app/source/doubanFM.20140112.zip =============================================== 豆瓣FM第三方客户端 14年1月1日 更新 ver 1.0.0 build 20140101 祝大家新年愉快!祝AAuto越来越好! 14年1月1日更新 功能更新: -- 新增 根据条件自动加红心、自动屏蔽(包括自动屏蔽英文歌曲) -- 新增 托盘图标、悬浮小窗(这个应该很需要) -- 新增 获取歌曲列表后再随即排列 -- 修复 不能最小化 等bugs 截图: 1) 方便喜欢看专辑介绍的同学: ![]() 2) 悬浮小窗,鼠标hover时显示标题、加红心等按钮 ![]() 3) 自动加红心/屏蔽设置,还可以自动屏蔽英文歌曲(右键主面板上的红心按钮也可设置) ![]() ![]() 20140101源码下载: http:///app/source/doubanFM.20140101.7z ========================================================== 11月23日更新 源码更新: -- 修复windows xp下无法运行报错的bug -- 使用用户库 结构化代码 (感谢“编程”,“一鹤”哥) -- 将try catch替换为条件判断,移除绝大所述try(感谢“编程”) -- 减少全局变量,尽量使用局部变量 -- 丢弃.ini 改用SQLite保存用户设置,原.ini中的内容会自动导入数据库中,并删除.ini -- 修复一些bug 功能更新: -- 增加“我的收听历史” - HTMLayout Grid控件 -- 获取歌曲后,重新乱序排列,防止每次收听红心兆赫时都是从那几首歌开始。 -- 运行速度上或许会有一点点提升 截图: ![]() 20131123源码下载: http:///app/source/doubanFM.20131123.7z ![]() 11月14日更新GDI+画桌面歌词,可以自定义文字字体、大小、颜色 ![]() ![]() 关于页中增加“coded by aauto! ",向一鹤及AAuto表示感谢! 喜欢本程序的亲请期待下一版,下一版做好后即更新本帖源码包。 下一版计划:记录歌曲播放历史。 ==================================== 10月10日更新 - Aero磨砂玻璃特效! 需要windows vista以上系统,并且显卡支持Aero特效、打开Aero磨砂玻璃透明主题 具体效果如下图所示: ![]() 存在的问题:当窗口后面是黑色时,由于窗体内的字体也是黑色,将会导致文字阅读困难。尝试使用css的outline属性,但由于效率太低,非常卡顿,所以放弃使用。折中的办法,当鼠标hover时,临时改变背景为白色半透明图片。望前辈们指教更好的解决办法。 另:本程序已实现自动更新并覆盖原exe。在aau里发布为exe后即可下载新版本并覆盖原exe。 下面这段代码实现了简陋的aero透明磨砂玻璃效果,问题依然是无法正确地显示控件(当然用HTMLayout就不存在这个问题) 参考:http://msdn.microsoft.com/en-us/ ... 8%28v=vs.85%29.aspx 源代码 [ AAuto ]import win.ui; /*DSG{{*/ var winform = ..win.form( bgcolor=0;bottom=290;parent=...;right=471;text="AAuto Form" ) winform.add( edit={ right=284;bottom=174;text="edit";left=143;top=149;z=2;edge=1;cls="edit" }; static={ bottom=67;color=255;right=204;left=77;top=44;z=1;text="非GDI文字";transparent=1;cls="static" } ) /*}}*/ // 窗体背景必须设为全黑 bgcolor=0 var enableDWM = true; try { var dwmapi = raw.loadDll("Dwmapi.dll"); DwmEnableBlurBehindWindow = dwmapi.api("DwmEnableBlurBehindWindow", "INT(int hWnd,struct pMarInset)"); } catch(e) { enableDWM = false; } if(enableDWM) { DWM_BLURBEHIND = class { INT dwFlags; bool fEnable; int hRgnBlur; bool fTransitionOnMaximized; } CreateRectRgn = ::Gdi32.api("CreateRectRgn","int(int X1,int Y1,int X2,int Y2)"); bb = DWM_BLURBEHIND(); bb.dwFlags = 0x3; // 0x1全部模糊,0x3指定区域模糊,其他区域透明 bb.fEnable = true; bb.hRgnBlur = CreateRectRgn(40,20,400,200); // 指定客户区内需要模糊的区域,其他区域透明显示 //bb.hRgnBlur = null; // null表示窗体客户区全部模糊 DwmEnableBlurBehindWindow(winform.hwnd,bb); } winform.show(); /* * gdi画文字 */ import gdip; //图形对象graphics(可以看作是画板) var Graphics = gdip.graphics(winform) //加上抗锯齿功能 Graphics.smoothingMode = 4/*_GdipSmoothingModeAntiAlias*/ ; //创建画笔,画笔pen只能画一个轮廓(画线) var re,Pen = gdip.CreatePen1( 0x66ffffff, 1,2/*_GdipUnitPixel*/ ); //创建刷子,画刷可以对一个东西进行填充(刷子)。 var re,Brush = gdip.CreateSolidFill(0xFF000000); //创建FontFamily family = gdip.family( "Verdana" ); //创建stringFormat strformat = gdip.stringformat ( ); //设置样式 strformat.align = 0/*_GdipStringAlignmentNear*/; //设置文字区域 rclayout = ::RECT(50,60,400,80); //创建一个文字路径 path = gdip.path( 0/*_GdipFillModeAlternate*/ ); //添加文字到上面创建的路径中 path.addstringI( "GDI文字", family, 1/*_GdipFontStyleBold*/, 15, rclayout, strformat); /* *********************************************** * GDI+中一般以I结尾的函数,参数使用int类型,而非I结尾的函数,参数使用float类型 * 这里的rclayout就是普通的int类型参数组成的RECT结构体 * *********************************************** */ //fillPath填充路径 Graphics.fillPath( Brush, path) //drawPath描边 Graphics.drawPath( Pen, path) //删除所有GDI+对象 gdip.DeleteBrush(Brush); gdip.DeletePen(Pen); strformat.delete(); family.delete(); path.delete(); win.loopMessage();如果需要实现无缝的aero磨砂玻璃效果,需要将窗体的非客户区扩大到客户区,使用DwmExtendFrameIntoClientArea 请参考http://bbs./forum.php?mod=viewthread&tid=6748 ===============================================-- 用HTMLayout所作,如下图所示 1) 主面板 ![]() 2) 仿安卓手机应用上的侧滑菜单 ![]() 3) 列表 ![]() 其中桌面歌词效果,用了多多洛的原帖链接 解析lrc,用了constmyself的原帖链接 表示感谢! 另外感谢各位前辈指出我上一版本出现的各种问题! |
|