Redrain仿酷狗音乐播放器开发完毕,发布测试程序
转载请说明原出处,谢谢~~
从暑假到现在中秋刚过,我用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仿酷狗音乐播放器开发完毕,发布测试程序的更多相关文章
- 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)
转载请说明原出处,谢谢 今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI ...
- 仿酷狗音乐播放器开发日志二十七 用ole为窗体增加文件拖动功能(附源码)
转载请说明原出处,谢谢~~ 中秋到了,出去玩了几天.今天把仿酷狗程序做了收尾,已经开发完成了,下一篇博客把完结的情况说一下.在这篇博客里说一下使用OLE为窗体增加文件拖拽的功能.使用播放器,我更喜欢直 ...
- 仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)
转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出 ...
- 仿酷狗音乐播放器开发日志二十五 duilib右键事件的不足的bug修复
转载请说明原出处,谢谢~~ 虽然仿酷狗的各个菜单早就写好了,但是一直没有附加到程序里.今天把菜单和播放列表控件关联时发现了问题. 和播放列表相关的菜单有三个,分别是每个音乐项目控件相关的菜单.分组的菜 ...
- 仿酷狗音乐播放器开发日志二十三 修复Option控件显示状态不全的bug(附源码)
转载请说明原出处,谢谢~~ 整个仿酷狗工程的开发将近尾声,现在还差选项设置窗体的部分,显然在设置窗体里用的最多的就是OptionUI控件,我在写好大致的布局后去测试效果,发现Option控件的显示效果 ...
- 仿酷狗音乐播放器开发日志二十六 duilib在标题栏弹出菜单的方法
转载请说明原出处,谢谢~~ 上篇日志说明了怎么让自定义控件响应右键消息.之后我给主窗体的标题栏增加右键响应,观察原酷狗后可以发现,在整个标题栏都是可以响应右键并弹出菜单的.应该的效果如下: 本以为像上 ...
- 仿酷狗音乐播放器开发日志十一——CTreeNodeUI的bug修复
由于做播放列表控件,我的CMusicLength控件继承了CTreeVieWUI控件,在向分组控件中添加播放项目时,发现代码无法正常工作,调用CTreeNodeUI控件的Add方法后无反应,导致我的播 ...
- 仿酷狗音乐播放器开发日志三——修复CEditUI的bug2
无意中发现了CEditUI控件的另一个bug,当我给播放器的搜索栏获取焦点时,这时再改变窗体大小,原本搜索栏应该对应着也改变大小,却发现CEditUI内嵌的edit控件没有跟着改变(如下图),跟着调试 ...
- 项目源码--Android类似酷狗音乐播放器
下载源码 知识技能概要: 1.音乐文件的扫描与管理 2.音频流的解码 3. UI控件的综合使用 4.播放列表方式管理 5.随机播放方式 6.源码带详细的中文注释 ...... 详细介绍 1. 音乐文件 ...
随机推荐
- Spring 3.0: Unable to locate Spring NamespaceHandler for XML schema namespace
被这个问题折磨着很久:参考: http://have23.iteye.com/blog/1340777 (cfx 与 spring 整合的时候出现的问题: org.springframework.be ...
- 怎样加快master数据库的写操作?分表原则!将表水平划分!或者添加写数据库的集群
1.怎样加快master数据库的写操作?分表原则!将表水平划分!减少表的锁定时间!!! 或者或者添加写数据库的集群!!!或者添加写数据库的集群!!! 2.既然分表了,就一定要注意分表的规则!要在代码层 ...
- HTML5入门九---Canvas画布
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 转载CSDN (MVC WebAPI 三层分布式框架开发)
前言:SOA(面向服务的架构)是目前企业应用开发过程中普遍采用的技术,基于MVC WebAPI三层分布式框架开发,以此适用于企业信息系统的业务处理,是本文论述的重点.此外,插件技术的应用,富客户端JQ ...
- 使用WM_COPYDATA跨进程发送数据
进程之间通讯的几种方法: 在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯.常用的方法有 使用内存映射文件 通过共享内存DLL共享内存 使用SendMessage向另一进程发送WM_ ...
- chmod u+x 脚本文件
[root@ossec-server Shell]# chmod u+x whologged.sh解释: chmod:改变权限 u:文件所有用户 +x: 增加可执行权限 [root@ossec-ser ...
- Android 时间轴TimeLine
代码:这里
- Java API —— BigDecimal类
1.BigDecimal类概述 由于在运算的时候,float类型和double很容易丢失精度,演示案例.所以,为了能精确的表示.计算浮点数,Java提供了BigDecimal 不可变的.任意精度的有 ...
- ActiveMQ集群(2)
ActiveMQ具有强大和灵活的集群功能,但在使用的过程中会发现很多的缺点,ActiveMQ的集群方式主要有两种:Master-Slave和Broker Cluster. 1.Master-Slave ...
- gulp browser-sync自动刷新插件
很久没弄gulp了,都快忘了,今天又来温习下browser-sync 自动刷新插件,在安装的时候出现以下提示: $ npm install browser-sync --save-dev> ws ...