转载请说明原出处,谢谢~~

从暑假到现在中秋刚过,我用duilib开发仿酷狗播放器大概经历了50天。做仿酷狗的意图只是看原酷狗的界面比较漂亮,想做个完整一些的工程来练习一下duilib。今天把写好的程序代码综合一下,发布测试版,现在一共写了10355行c++代码和大约2000行xml代码。测试版的程序肯定会有不少bug,而我自己也没有精心去测试程序,希望发现问题的朋友联系我一下,我去修正。程序在win8下运行会有问题,请在兼容性里调整一下!整个软件的开发过程可以看前面发布的博客!

软件界面上绝大多数的控件的功能我都写出来了,几个不重要的控件功能我没有开发!

已有功能的介绍:

1、程序主界面

主界面的效果和原酷狗的是很相似的,右侧的乐库功能只是简单的连接到了网页,没有实际的功能!:

2、换肤功能:

点击标题栏上的换肤按钮可以打开换肤窗体,在这里可以修改窗体的背景图片。修改播放列表的透明度和整个窗体的透明度:

另外可以自己选择背景图片或者使用调色板改变窗体背景色:

3、添加音乐并播放

可以直接拖动音乐文件或者音乐文件夹到播放列表,这时程序会自动添加音乐进去;或者通过下方的音乐添加按钮来选择音乐:

之后可以直接双击音乐列表的项目来播放音乐了,音乐控制按钮和音量控制都是可以使用的。另外原本酷狗的刷新乐库和倒退的按钮,我用来动态增加音乐项目和电台项目:

     

4、Mini窗体

点击标题栏的缩小按钮,可以让窗体进入Mini模式,这样子乐库就被隐藏了:

5、各个菜单

我为仿酷狗做了6个菜单,分别为标题栏菜单,音乐分组菜单,音乐项目菜单,托盘菜单,循环模式选择菜单,音乐电台菜单。很多菜单的响应我并没有去实现,只是做了外观。其中循环模式选择菜单和标题栏菜单的一些选项是可用的:

 
    

 
         

这里的循环选择菜单的功能是有效的,音乐会根据循环模式的不同而有不同的播放模式!

6、设置窗体

打开标题栏菜单,选择“设置”选项,可以打开设置窗体,这个窗体只是样子,没有实际功能:

 
                                                    
           
          

7、左侧功能区

左侧功能区的选项都是可用的,加入了切换动画效果

通过点击刷新按钮可以动态增加音乐电台:

功过点击返回按钮可以动态增加下载列表的项目

8、开启窗体特效

我另外附带了一个音乐盒,增加了窗体开启特效,但是特效并不稳定,只是测试使用的。





未完成功能的介绍:

1、退出程序动画特效

        2、乐库载入动画效果

        3、各个菜单的响应

        4、歌词

        5、桌面歌词

未完成的功能我不打算再去编写了,因为还有很多其他的事情要做,代码开源的话大家可以自己去完成。

关于开源:



群里有很多朋友私密过我,询问关开这个界面是否开源的问题。我这里说明一下:实际上我自己是有开源意向的,这只是用来我练手的程序,开源后或许可以帮到其他刚入门duilib的朋友来学习这个库。但是问题在于我做仿酷狗使用的都是原酷狗的图片素材,而酷狗有声明不可以反向他的软件。所以不确定是否会给我带来麻烦前我不会开源。我在读书,不想惹麻烦~~如果确定开源后没问题的话,我会把源码上传到github.

总结:



写这个界面花了我不少时间,起初只是打算练练手,后来在编写的过程中也学到不少东西,对duilib也有了更好的了解。我个人很喜欢duilib,但是duilib现在出于无人维护的状态下,几乎每个人都有自己维护的一个duilib,我也一样。自己一直在修复这duilib的bug,并且我想在下一个阶段给duilib增加窗体动画特效的功能,另外完善一下uilib库原代的控件动画特效类。这些天看到了老外的juce库,感觉写的很不错,值得学习一下。我想好好研究一下juce库,并把学到的东西再应用到duilib库中将其扩展。就到这里吧!

测试程序下载地址:csdn:点击打开链接

百度云:点击打开链接

我的联系方式:

    Redrain  QQ:491646717

Redrain仿酷狗音乐播放器开发完毕,发布测试程序的更多相关文章

  1. 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)

    转载请说明原出处,谢谢 今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI ...

  2. 仿酷狗音乐播放器开发日志二十七 用ole为窗体增加文件拖动功能(附源码)

    转载请说明原出处,谢谢~~ 中秋到了,出去玩了几天.今天把仿酷狗程序做了收尾,已经开发完成了,下一篇博客把完结的情况说一下.在这篇博客里说一下使用OLE为窗体增加文件拖拽的功能.使用播放器,我更喜欢直 ...

  3. 仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)

    转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出 ...

  4. 仿酷狗音乐播放器开发日志二十五 duilib右键事件的不足的bug修复

    转载请说明原出处,谢谢~~ 虽然仿酷狗的各个菜单早就写好了,但是一直没有附加到程序里.今天把菜单和播放列表控件关联时发现了问题. 和播放列表相关的菜单有三个,分别是每个音乐项目控件相关的菜单.分组的菜 ...

  5. 仿酷狗音乐播放器开发日志二十三 修复Option控件显示状态不全的bug(附源码)

    转载请说明原出处,谢谢~~ 整个仿酷狗工程的开发将近尾声,现在还差选项设置窗体的部分,显然在设置窗体里用的最多的就是OptionUI控件,我在写好大致的布局后去测试效果,发现Option控件的显示效果 ...

  6. 仿酷狗音乐播放器开发日志二十六 duilib在标题栏弹出菜单的方法

    转载请说明原出处,谢谢~~ 上篇日志说明了怎么让自定义控件响应右键消息.之后我给主窗体的标题栏增加右键响应,观察原酷狗后可以发现,在整个标题栏都是可以响应右键并弹出菜单的.应该的效果如下: 本以为像上 ...

  7. 仿酷狗音乐播放器开发日志十一——CTreeNodeUI的bug修复

    由于做播放列表控件,我的CMusicLength控件继承了CTreeVieWUI控件,在向分组控件中添加播放项目时,发现代码无法正常工作,调用CTreeNodeUI控件的Add方法后无反应,导致我的播 ...

  8. 仿酷狗音乐播放器开发日志三——修复CEditUI的bug2

    无意中发现了CEditUI控件的另一个bug,当我给播放器的搜索栏获取焦点时,这时再改变窗体大小,原本搜索栏应该对应着也改变大小,却发现CEditUI内嵌的edit控件没有跟着改变(如下图),跟着调试 ...

  9. 项目源码--Android类似酷狗音乐播放器

    下载源码 知识技能概要: 1.音乐文件的扫描与管理 2.音频流的解码 3. UI控件的综合使用 4.播放列表方式管理 5.随机播放方式 6.源码带详细的中文注释 ...... 详细介绍 1. 音乐文件 ...

随机推荐

  1. 360 chrome 国际版能够隐藏用户保存的密码

    用360 chrome 国际版一段时间了,今天发现它一个优点:取消了浏览器保存的密码明文显示! 原生的chrome和枫树都会明文显示密码,360 chrome国际版则只显示保存了密码的域名和账户名.光 ...

  2. Project Euler 88:Product-sum numbers 积和数

    Product-sum numbers A natural number, N, that can be written as the sum and product of a given set o ...

  3. ThreadLocal类的理解

    首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的.各 ...

  4. 动态调整对话框属性(去掉标题栏,去掉边框,修改类似成Border:NONE样式)(调用ModifyStyle和ModifyStyleEx,然后调用SetWindowPos重新显示)

    // 动态修改对话框属性,去掉对话框标题栏,设置Border为NONE属性. if(dlg.GetSafeHwnd()) { dlg.ModifyStyle(WS_CAPTION, 0); // 去掉 ...

  5. 一步一步开发sniffer(Winpcap+MFC)(一)工欲善其事,必先配环境——配置winpcap开发环境(图文并茂,非常清楚)

    http://blog.csdn.net/litingli/article/details/5950962

  6. 259. 3Sum Smaller

    题目: Given an array of n integers nums and a target, find the number of index triplets i, j, k with 0 ...

  7. Android开发之MD5加密

    将字符串进行MD5加密,返回加密后的字符串 public static String encode(String password) { try { StringBuffer sb = new Str ...

  8. Android 中Activity生命周期分析:Android中横竖屏切换时的生命周期过程

    最近在面试Android,今天出了一个这样的题目,即如题: 我当时以为生命周期是这样的: onCreate --> onStart -- ---> onResume ---> onP ...

  9. mac 下php运行bug

    如下所说bug在window下没有,在mac下存在. mac下的php报如下错误: fopen("data.json") Error: failed to open stream: ...

  10. Android Monkey测试

    Monkey测试1——Monkey的使用 原文地址: http://www.douban.com/note/257029872/ (转自豆瓣,版权属于豆瓣及豆瓣网友,如有冒犯请见谅并联系我们) Mon ...