K.F.Storm豆瓣电台已停止维护

该来的终归要来。

豆瓣官方已停止支持桌面客户端,详情请见http://www.douban.com/group/topic/81018842/

stop

这个客户端是四年前我读大学时闲着没事做的,那个时候有时间,也有精力去做这样一个客户端。现在不一样了,我已工作两年多,平时在无多余时间去维护它。况且现在豆瓣把桌面版的API整个禁掉,客户端需要大改才能适应新的API,实在有心无力。现在回过头来看自己当时写的代码,真的很丑,也很难维护,我已不想再碰。自认为这两年工作经历使得自己写代码的水平提高了不少,而且我认为做UI对写代码能力的提升非常有限,已不值得花这个时间再去维护或者推翻重来一遍了。

曾经的我可以翘课,甚至通宵,就因为喜欢写代码,喜欢做大家喜欢的用户界面。现在,已经工作的我,却十分讨厌做UI,反而对后台技术特别感兴趣,并一直在朝着这个方向努力。看来人的兴趣也是会变的。请大家理解,我为什么不再维护它。

推荐大家使用网易云音乐,我已经放弃豆瓣FM两年了。(虽然我觉得网易云音乐的桌面客户端UI很丑。)

在此贴上客户端源代码地址,大家有兴趣的话可以看看。https://github.com/kfstorm/DoubanFM

如果有朋友有时间和精力,可以考虑一下使用我最近写的豆瓣FM库替换掉现在客户端的播放器模块。它使用的是移动端的API,所以不受此次封禁的影响。项目在此:https://github.com/kfstorm/Kfstorm.DoubanFM.Core

感谢曾经帮助过我的人们,以及所有客户端的用户,没有你们的支持,我不可能把它做成现在的样子。

最后,贴一下以前录的客户端演示视频,当个留念。

功能演示视频第二版(1.7.1版)

http://v.youku.com/v_show/id_XMzQ0MDczMjQ4.html

功能演示视频(1.2.4版)

http://v.youku.com/v_show/id_XMzAwNDgyNjg0.html

豆瓣电台无法播放临时解决办法

由于我这个月的SAE云豆耗光,所以豆瓣电台客户端无法获取频道信息了。这个问题会在本月28号自动恢复。现在临时的解决方法是,从这里下载一个压缩包,将里面的名叫“channelinfo”的文件放到“%APPDATA%\K.F.Storm\豆瓣电台”目录下。重新打开豆瓣电台,稍等片刻后就能正常播放了。请大家广而告之。

抱歉现在才发表这篇文章。

Bing Wallpaper 1.0.2.0

Bing Wallpaper 1.0.1.0有一个严重的bug,会使某些情况下更换壁纸的功能彻底失效。请大家更新到1.0.2.0版本。

现在博客标题下面建立了Bing Wallpaper的页面,所以也许没大更新的话,我只会在那个页面里更新版本号和下载链接,不会特地发一篇新文章对更新进行说明了。

下载地址:http://up.kfstorm.com/BingWallpaper_1.0.2.0.zip

Bing Wallpaper 1.0.1.0

大家还好吗?大学毕业后已经工作一个月了,真是想念大学生活啊。闲暇之余,花了一个小时给Bing Wallpaper加上了切换壁纸的渐变特效(必应缤纷桌面就有这个效果),于是就有了这个1.0.1.0版本。当然XP用户是看不到的。

下载地址

顺带说一句,大家多多支持必应系列产品哦,什么必应搜索、必应缤纷桌面、必应词典、必应输入法……

See you!

扫雷机器人

今天心情好,为大家奉上两年前写的一个小玩意儿:扫雷机器人。扫雷机器人的用途当然就是自动扫雷了,需要Windows 7系统的扫雷(Vista的扫雷可能也可以,因为好像和Win7的长的一样,没测试过)。使用方法是打开扫雷与扫雷机器人,在扫雷中设置好你想玩的难度,并使扫雷机器人中的难度设置保持一致。扫雷机器人中的动画设置也必须与扫雷一致。在扫雷机器人中点击“开始新局”就开始自动扫雷了。

 

继续阅读

Bing Wallpaper 1.0.0.0

去年我发布了一个自动更换桌面背景为当日的Bing首页图片的小软件,在之后的使用过程中我一直设置了开机启动,但总觉得托盘上的图标很碍眼。于是这两天写了个新版本。新版本没有托盘图标,双击运行会打开一个窗口,里面包含版本信息、设置、当日图片的链接等。这个窗口可以关闭,Bing Wallpaper仍然会在后台运行。关闭窗口后如果想再次打开这个窗口,或者想退出Bing Wallpaper,请再次双击运行程序的exe文件。开机启动是不会显示这个窗口的(仍然可以之后双击exe以显示窗口),比较清静。

 

继续阅读

豆瓣电台2.0.9发布!

更换了登录方式,新的登录方式会稳定很多,不会受豆瓣FM网页版改版影响。不再需要输入验证码, 不再受账号浏览器中注销而影响,提高加载速度,大幅减少“请稍候”的显示时间。去掉了“累积收听XXX首……”的显示(这个没办法)。

最近才知道豆瓣FM的iPad版是有歌词的,于是歌词源除了千千静听外又多了个豆瓣官方的源,而且豆瓣优先。

 独立安装程序:http://doubanfmcloud-client.stor.sinaapp.com/DoubanFMSetup_2.0.9.0.exe

 

更新说明

1、更换了登录方式,不再需要输入验证码,提高加载速度。

2、增加豆瓣官方的歌词源。

 

详细信息请看:http://www.kfstorm.com/blog/doubanfm/

.NET下使用全局Shell Hook

今天我解决了一个长期困扰我的问题,那就是如何在.NET程序中使用全局Shell Hook。

豆瓣电台需要响应用户按下键盘上的“播放/暂停”键与“下一首”键,无论豆瓣电台的窗口是否处于活动状态。

响应多媒体指令的最佳方法就是处理WM_APPCOMMAND消息,但WM_APPCOMMAND消息只在窗口处于活动状态时才会触发,当窗口处于非活动状态时,WM_APPCOMMAND是不会触发的。从某种角度上来说,WM_APPCOMMAND消息不是全局广播的。另一个办法是使用全局Shell Hook,使用SetWindowsHookEx函数添加一个类型为WH_SHELL的全局钩子,并在Shell钩子的回调函数中处理wParam参数为HSHELL_APPCOMMAND的消息。一切看起来很美好,不是吗?别急,下面才是重点。豆瓣电台使用C#编写,生成的代码当然为托管代码,而包含全局钩子的代码必须编译为本机DLL,所以单纯使用托管代码是无法安装全局钩子的(见此文的“在 .NET 框架中不支持全局挂钩”一节)。难道要逼我用C++写个DLL?注册热键的方法也不太好,因为热键有唯一性,可能会出现热键冲突。

继续阅读