仿酷狗音乐播放器已开源!

仿酷狗音乐播放器已开源!这是Redrain仿酷狗音乐播放器的完整代码,目的是帮助更多使用DuiLib的朋友学习这个库,如果代码有bug,或者对程序有疑问,可以联系我个人QQ或者QQ群,我经常在DuiLibQQ群活动,这个代码中包含了webkit内核浏览器、音乐播放类、菜单类、换肤功能等等。

大家好,又见面了,我是你们的朋友全栈君。

转载请说明原出处,谢谢:http://blog.csdn.net/zhuhongshu/article/details/41037875

       距离我发布测试版的Redrain音乐盒(仿酷狗播放器),现在正好刚2个月。博客留言和QQ群里也一直有网友关心这个小项目开源的问题。先感谢网友对这个小项目的支持。之前我一直担心版权问题而没有开源这个项目,因为我只是个在校大学生,也没有工作,不想惹麻烦,希望大家体谅!


      这篇文章只是对开源的说明!关于这个Redrain音乐盒的发布程序的说明和使用方法,见Redrain仿酷狗音乐播放器开发完毕,发布测试程序


      今天,我把这个项目的源代码上传。包括了可以编译工程所需的所有代码文件,已经软件的布局文件,但是没有包括软件需要的素材,这也是为了避免引起与酷狗播放器的版权问题。


      如果有哪位朋友有完整的音乐库素材,并且愿意免费提供给我把这个项目换一套素材,我将感激不尽!详细的说明请看关于仿酷狗音乐播放器开源:寻求一套音乐播放器素材,让仿酷狗开源


      开源这个小项目的目的,是为了帮助更多使用DuiLib或者UiLib库的朋友们,去学习和熟悉这个库。我个人非常喜欢DuiLib库,同时也是国内最早的开源DirectUI界面库。并且DuiLib并不是没人管的孩子了,DuiLib2.0和DuiLib3.0版本也在开发中,据说DuiLib3.0将是一个跨平台的界面库。在此希望DuiLib能发展的更好!


     我在这个项目中使用的是UiLib库而不是DuiLib库,UiLib库是DuiLib库的扩展版本,增加了一些动画控件的支持,扩展了部分控件,但是核心代码并没有改变,与DuiLib使用方法完全一样,也可以用UiLib库直接编译使用DuiLib库编写的代码。项目中的UiLib是我为了适应仿酷狗而专门修改过的,也修复过必要的bug,所以如果你使用原版的DuiLib或者UiLib库去编译这个功能,最终的程序效果和我发布的不一样。关于bug的修复请看博客中更早期的文章。我自己使用并且维护的DuiLib库和UiLib库的下载地址见博客:Redrain个人维护并使用的DuiLib和UiLib库源码下载地址


     看这个程序代码的时候建议结合我之前发布的《仿酷狗音乐播放器开发日志》系列的文章,我在文章里说明了开发步骤和思路,再结合这份源码便可以完全理解这个项目。


     由于上传的代码中不包括素材,所以直接编译出来的程序运行后是无素材效果,非常难看的。所以我同时提供了已经内部集成了素材的程序《Redrain音乐盒附带素材效果.exe》,大家可以通过它看到程序运行的完整真实效果。项目是用vs2012开发的。关于程序运行时内存会涨的问题是因为程序使用了wke浏览器内核,去掉的话就没问题了!

仿酷狗音乐播放器已开源!

仿酷狗音乐播放器已开源!

仿酷狗音乐播放器已开源!

仿酷狗音乐播放器已开源!

仿酷狗音乐播放器已开源!

仿酷狗音乐播放器已开源!

仿酷狗音乐播放器已开源!

 

      在这个项目源码中,同时包含了webkit内核浏览器控件、音乐播放类、换肤功能、拖拽功能、菜单等等。关于菜单的说明见:为duilib的MenuDemo增加消息响应,优化代码和显示效果,这个菜单的功能如下:

        1、可以展现多级菜单

        2、可内嵌自定义控件,并且控件可以向主窗体发送消息,如图的红色叹号就是个按钮控件,可以制作酷狗音乐的托盘菜单的播放暂停按钮和进度控制进度条。

        3、菜单拥有阴影效果

        4、菜单可以自定义前方显示小图标,并且可以控制图标的大小和是否显示

        5、菜单可以根据是否拥有子菜单决定是否显示小箭头

        6、菜单可以添加分割线

        7、每个菜单项都可以单选和复选的功能

        8、优化菜单的xml描述文件,编写方便容易,如果要写一个二级菜单,比如编写图片中的菜单测试4以及他的子菜单,只需如下代码就可以了

        9、可以通过键盘的按钮控制菜单的选项

        10、每个菜单项的高度宽度是任意调整的

     在这个项目中,还有一些未实现的功能,但是我并不打算继续完成这些功能了:

     1、退出程序时逐渐缩小的动画特效
     2、各个菜单的响应
     3、歌词功能(已经有网友做出来了,我就不另外做了)
     4、嵌入桌面的桌面歌词


结束语:

   如果程序代码中有任何bug,或者对代码有疑问,可以在QQ群里找到我,或者加我QQ。同时开源代码只是为了学习交流,不可用于商业程序,源码对使用者造成的损失,概不负责!

   源码下载地址:点击打开链接


    Redrain  2014.11.12

    QQ:491646717

    E-mail:redrains@qq.com

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153204.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 彻底禁止win10更新的锅「建议收藏」

    彻底禁止win10更新的锅「建议收藏」背景:tonight,和往常一样,就在打开vmware的一瞬间……突然弹出下面这个令人懵逼致死的图:百度搜索一通,众说纷纭,发现竟然还是win10系统的锅。下面开始解决问题,直接上图:这1903版本不支持vmware14,需要更新vm为15版本,商业套路,NM真够了,果断拒绝,还是另想办法吧;想着把1903更新卸载了,但是没有卵用,重启之后,出现下图,反应老半天…

    2022年6月17日
    20
  • android图片资源加密,Android平台图像文件加密

    android图片资源加密,Android平台图像文件加密传统计算机平台下的图像加密技术已经得到了广泛的研究和应用,但移动平台受限于当前的硬件架构,无法直接继承传统平台的安全性技术。针时智能手机等移动平台中的图像信息安全问题,提出了一种基于Android移动平台的图像加密方案。一、图像加密技术1、传统图像加密技术分析传统的图像加密技术主要基于现代密码体制。通常将图像像素信息看作一维数据流,在密钥的控制下,利用加密算法(常用加密算法如EDS、AES、RC6…

    2022年5月17日
    41
  • 激光slam_高德导航术语理解

    激光slam_高德导航术语理解ROS激光SLAM导航理解注:最近学习ROS的导航,需要理清ROS的SLAM、环境感知(costmap)、与导航算法。为防止自己忘记,将觉得有价值的内容摘抄于此。文章目录ROS激光SLAM导航理解激光SLAM基本原理基本原理1、占据栅格地图基本原理2、导航基本原理SLAM与导航系统框架:激光SLAM系统框架建图系统框架导航系统框架`move_base`中的使用运用`plugins`Cost…

    2022年8月23日
    8
  • 五种常用手机Java编程软件[通俗易懂]

    五种常用手机Java编程软件[通俗易懂]越来越多的朋友都对编程感兴趣,编程需要工具,所以大家也想知道有哪些好用的java编程工具,接下来系哦啊吧就为大家介绍几款常用的相关编程工具。1.JDKJDK-java开发工具包JDK是Java开发工具包,基本上每个研究java的人都首先在机器上安装JDK,那么他有哪些部件呢?下面是运行java时真正工作的四个文件夹:bin、include、lib、jrebin:是最重要的是编译器包括:java和jvm与头文件lib:类库jre:java运行时环境的交互一般用于java程序的开发,而jre只运行类而不编译

    2022年7月21日
    11
  • File类createNewFile与createTempFile的区别[通俗易懂]

    自:http://www.cnblogs.com/huangyibo/p/3667714.html最近,在看代码时看到了一个方法,File.createTempFile(),由此联想到File.createNewFile()方法,一时间不知道两者到底有什么区别,感觉都是创建新文件嘛,后来查看api文档介绍,并经过自己动手试验,终于有了一个较为清楚地认识。 1.File的crea…

    2022年4月11日
    39
  • wifi数据包解析_解析WiFi数据包(libpcap)

    wifi数据包解析_解析WiFi数据包(libpcap)我一直在努力使OpenWRT路由器将WiFi探测器请求发送到MySQL数据库(它存储每个探测请求数据包的MAC地址和RSSI信息以及其他路由器特定的数据).在对libpcap进行了大量的研究之后,我已经能够拼凑一个基本的小程序,只需使用过滤器表达式(‘wlansubtypeprobe-req’)在监视器界面(mon0)上嗅探数据包,然后打印出原始数据包在十六进制.使用libpcap上可以在线获…

    2022年7月21日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号