简单的Silverlight音乐播放器Widget
2008-06-26 09:33 Windie Chai 阅读(4431) 评论(15) 编辑 收藏 举报
上周尝试了一下发布不久的Silverlight 2 beta2,设计了这么一个简单的播放器widget。它支持循环播放,支持自动播放,支持封面图片,支持暂停(鼠标移动到封面上就会淡入按钮)。
本来是想设计的稍微酷一点的,发现Silverlight2的矩阵变形能力还是相当弱的,其实现的功能也就是平移、平行四边形化和旋转,如果再支持梯形化就好了。


发现Silverlight 2 beta2相对beta1的一些小变化:
1.字体优化,beta1总算支持了中文显示,但却显示的非常别扭。
一句话会出现两种字体,貌似规律是这样的,如果某个汉字的繁简体一样的话,那么这个汉字在Silverlight中显示为黑体,否则为宋体。
其实微软的网站上早就有这样的先例,譬如下图:

2.Image不再像之前那样使用依赖属性赋一个Uri就可以了,而是变成了下面的样子:
3.另外,之前基于beta1制作的饭否widget无法编译通过了,在异步调用的方法中,似乎无法直接操作控件的属性了,不知何解。
OK。如果你也想在blog上添加这个widget,那么编辑主题,在相应的位置加入以下代码:
稍微介绍一下InitParams的配置就可以了,它包含了音乐url(music)、封面url(cover)、标题(title)、自动播放(auto)和循环(loop),各个参数之间用半角逗号分割即可。
点击下载示例源码
本来是想设计的稍微酷一点的,发现Silverlight2的矩阵变形能力还是相当弱的,其实现的功能也就是平移、平行四边形化和旋转,如果再支持梯形化就好了。


发现Silverlight 2 beta2相对beta1的一些小变化:
1.字体优化,beta1总算支持了中文显示,但却显示的非常别扭。
一句话会出现两种字体,貌似规律是这样的,如果某个汉字的繁简体一样的话,那么这个汉字在Silverlight中显示为黑体,否则为宋体。
其实微软的网站上早就有这样的先例,譬如下图:

2.Image不再像之前那样使用依赖属性赋一个Uri就可以了,而是变成了下面的样子:
BitmapImage bmp = new BitmapImage();
bmp.UriSource = new Uri(cover);
this.img_Cover.Source = bmp;
bmp.UriSource = new Uri(cover);
this.img_Cover.Source = bmp;
3.另外,之前基于beta1制作的饭否widget无法编译通过了,在异步调用的方法中,似乎无法直接操作控件的属性了,不知何解。
OK。如果你也想在blog上添加这个widget,那么编辑主题,在相应的位置加入以下代码:
<object data="data:application/x-silverlight," type="application/x-silverlight-2-b2" width="140" height="160">
<param name="source" value="http://blog.windstyle.cn/wp-content/uploads/2008/06/windstyleplayer.xap"/>
<param name="onerror" value="onSilverlightError" />
<param name="InitParams" value="music=http://lqyy.cnlu.net/UploadFile/2008-4/200841718293180.mp3,cover=http://img.verycd.com/post_thumbs/0804/post-511307-1208867652_thumb.jpg,title=鸿雁 - 额尔古纳乐队,auto=true,loop=true" />
<param name="background" value="#09182A" />
<a href="http://go.microsoft.com/fwlink/?LinkID=115261" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
</a>
</object>
<param name="source" value="http://blog.windstyle.cn/wp-content/uploads/2008/06/windstyleplayer.xap"/>
<param name="onerror" value="onSilverlightError" />
<param name="InitParams" value="music=http://lqyy.cnlu.net/UploadFile/2008-4/200841718293180.mp3,cover=http://img.verycd.com/post_thumbs/0804/post-511307-1208867652_thumb.jpg,title=鸿雁 - 额尔古纳乐队,auto=true,loop=true" />
<param name="background" value="#09182A" />
<a href="http://go.microsoft.com/fwlink/?LinkID=115261" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
</a>
</object>
稍微介绍一下InitParams的配置就可以了,它包含了音乐url(music)、封面url(cover)、标题(title)、自动播放(auto)和循环(loop),各个参数之间用半角逗号分割即可。
点击下载示例源码
原文发布于coding.windstyle.cn,欢迎访问、订阅并和我交流。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!