2008,真是不平静的一年。
    不知不觉,这个账号已经注册6年多了,回顾一下六年也有写感慨。其实,四个字就可以总结:菜鸟依旧。
    正在整理自己这一年来所做的一些东西,这里是第一篇。后续的我将继续发布出来跟大家分享我的这一年,希望各位也能跟我分享一下你们的这一年--无论是技术还是生活上的。   本篇的主角:百度MP3音乐搜索下载。
    所用的技术点:DirectShow播放音乐,WinSock多线程下载,线程池,内存池,
    这个核心代码是去年学习的时候写的。今年十一的时候,将界面进行了更新,换成了自己写的一套Windowless控件(不是DirectUI技术)。现将核心代码公开(里面有些BUG,仅供初学者参考)。界面库版本的代码暂不公开,还在继续开发下去。
    开发之初,主要目的是进行技术探究。还有就是现有的播放器很多不习惯。为了开发这个,我曾研究了一些比较流行的播放器。说说自己对每个的感受吧(这里仅仅是网络播放器):    酷我音乐盒:很有创意(不过后来发现居然跟国外的一款很相似,怀疑抄袭)。不过界面太大了,但它的音乐指纹识别技术很牛。
    酷狗音乐:不错,它的歌词显示技术跟其它的都不同。也算是有创新的吧。而且这个是DELPHI的作品。
    QQ音乐:商业化太浓。下载个MP3都需要变成绿钻用户。
    SoGua音乐:跟酷狗一样。功能没它强,似乎是酷狗的前一个版本。
    网易音乐盒:网易音乐盒是刚出来的,觉得还不错。不过不喜欢它的界面。    总的感觉就是在互相抄袭,到最后,失去了个性。
    现在主要是做在自己用的,所以,很多东西都是按照我自己的习惯做的,可能不符合各位。现有功能/特点:
  1.搜索功能:根据歌词搜索,根据歌名搜索,根据专辑搜索,百度TOP N列表。歌词搜索下载。
  2.下载功能:多线程下载,异步存储。
  3.所有的缓存都在内存中,在没有下载完成不会做写硬盘操作。
  4.仿照QQ音乐2008界面,可以进行主题颜色更改。可以设置自己喜欢的背景图片,它将会和播放器进行ALPHA混合。
  5.纯WindowsLess控件,整个窗体只可以看到一个控件TFrmMain。自己开发的一套控件。(可以使用SPY++查看一下就知道了)
  6.播放热键支持。
   Ctrl + ->        下一曲
   Ctrl + <-        上一曲
   Ctrl + End       暂停/播放
   Ctrl + Home      显示/隐藏播放器
   Ctrl + Up        音量增大
   Ctrl + Down      音量减小  7.在列表中按下相应字母可进行搜索。比如,搜索“海阔天空”,只需要按下H键就可以进行自动跳转。
  8.使用DirectShow播放音乐。
  9.支持发送歌曲直接到可移动磁盘。
  10.搜索引擎使用的是百度。继续开发的设想:
  1. 界面稍有闪烁,需要优化。
  2. 增加在线播放功能,增加波形显示功能。(需要对DirectShow进行更深入的研究。DirectShow很强大,也很复杂,很多东西还没有研究清楚。主要是开发Filter的问题。)    编译说明请看源码内部说明。这是播放器界面:
我写的一点点总结,可以到我的博客看: 
http://etomahawk.popo.blog.163.com/blog/static/9196448200811271045475/说明: 
http://etomahawk.popo.blog.163.com/blog/static/919644820081127104233851/大家可以到这里下载: 
http://download.csdn.net/source/913864本帖得分规则:凡是带6(我的账号注册6年纪念),8(纪念即将逝去的2008),9(准备迎接一个崭新的2009)的楼层将得分。
最后祝大家健康快乐每一天。(写的比较乱,请大家见谅)

解决方案 »

  1.   

    顶一下,我之前在搜刮音乐,做的播放器跟酷狗是没得比,不过说实话两者性质上有很大的区别,另 SoGua 的歌词是我做的,其实已经有了酷狗一样的功能,是我走之前做好的,只是没公布这个功能出来!
    有一点很不明白,用 DirectShow 做播放器,只要一开始播放 内存就升了7,8M或者十几M,不管是暂停还是停止都无法降下来,不知到底是什么原因,像暴风影音也一样,其它的我没注意过
      

  2.   

    看了下楼主的播放器,挺不错的!我之前也写过一个播放器(DirectShow),不过功能不多
    播放模式,时间显示,歌词叠加,波形显示(峰值),视频抓图,音量控制。完全无网络功能!
    有兴趣可以一起交流一下
    QQ :279086597
      

  3.   

    starluck  你有些卑鄙哦,
      

  4.   

    PS: 
    我的目标是 ----> ^_^
      

  5.   

    这个windowsless很有意思,不知怎么实现的?
      

  6.   

    哈哈,看来我也有分了,我是 RedFox. 关于 Skin 问题,我们聊过的,记得我吗下你的代码学习下,多谢
      

  7.   

    DirectShow实现比较方便,render一下就好了,对各种类型的媒体处理比较方便:)试用一下,看看和几个主流的有什么不同。
      

  8.   

    强烈支持etomahawk ,此人是一个比较低调的高手。恭喜楼主升星!