最近新换公司,没什么事情,闲的蛋疼,弄了2个小应用.(小鬼音乐,小鬼电子书)
本篇大体谈下小鬼音乐的实现过程。
第一,直接上效果图
技术点:
a 根据qq号码搜索对应的qq音乐 非常感谢(http://www.cnblogs.com/Xer-Lee/archive/2012/05/18/2508141.html)这篇文章,写的不错,但是获取到的歌曲url
是不能播放的,(qq音乐是要登陆了,才能获取真正播放的url),这里我使用了一个比较笨的方法(根据获取到的歌曲名和歌手再利用百度的api来获取对应的播放url)
" http://box.zhangmen.baidu.com/x?op=12&count=1&title="+ songname + "$$" + name + "$$";
歌词:"http://geci.me/api/lyric/"+ songname="/"+name;
专辑图片:"http://geci.me/api/cover/"+aid;(aid歌曲id,获取歌词的时候可以得到)
b 文件的缓存技术(为减少用户使用流量) 可以参考前一篇文章http://www.cnblogs.com/xiaogui9527/archive/2013/04/26/3045326.html
c 动画效果,全屏查看歌词的翻转动画效果。 主要使用到 DoubleAnimation
//歌词滚动效果
private void StroyBoradText()
{
sb1 = new Storyboard();
DoubleAnimation animation1 = new DoubleAnimation();
animation1.Duration = TimeSpan.FromSeconds(1);
Storyboard.SetTarget(animation1, spgczs.RenderTransform);
animation1.To = -1.5 * step;
Storyboard.SetTargetProperty(animation1, new PropertyPath(TranslateTransform.YProperty));
sb1.Children.Add(animation1);
sb1.Begin();
}
//全屏翻转看歌词
bool falg = false;
private void StroyBoradGc()
{
gd.Projection = new PlaneProjection();
gd.Projection = new PlaneProjection() { RotationY = 0 };
sb = new Storyboard();
DoubleAnimation animation = new DoubleAnimation();
animation.Duration = TimeSpan.FromSeconds(1);
Storyboard.SetTarget(animation, gd.Projection);
gd.RenderTransformOrigin = new Point(0.5, 0.5);
Storyboard.SetTargetProperty(animation, new PropertyPath(PlaneProjection.RotationYProperty));
sb.Children.Add(animation);
if (falg)
{
animation.EasingFunction = new CubicEase()
{
EasingMode = EasingMode.EaseOut
};
animation.To = 360;
falg = false;
}
else
{
animation.EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseOut };
animation.To = 0; falg = true;
}
sb.Begin();
sptp.Visibility = animation.To == 360 ? Visibility.Collapsed : Visibility.Visible;
spgczs.FontSize = animation.To == 360 ? 26 : 24;
}
本篇先介绍小鬼音乐, 下篇在介绍小鬼电子书。
如有错误的地方,望各位指出,积极交流!
by 小鬼 ! 2013-5-2