MediaPlayer控件为Silverlight附带的一个附加在vs2008开发环境的一个控件。在初安装silverlight2.0 for vs2008支持时,工具栏只多了2个选项,一个是silverlight,另外一个就是mediaplayer
这玩意拖到ASP页面,就可以当一个控件使用。自动加载方法很简单,页面控件有属性可以选择绑定的。不过要实现页面点选下拉框或者按钮进行选择曲目呢。开始我可能走入一个误区,找不到手工绑定的方法。寻寻觅觅,网络都找不到相关的答案。后来用了一个最简单的办法,成功了。呼~~,有时,方法不要先入为主想太复杂了。按正常的思路出发再扩展是最好的。先看页面的代码:这里只是拉出来,自动生成的,MediaSkinSource为绑定的skin外观,还有个MediaSource的,那个可以这里选择指定播放的mp3或者音频,你也可以选择asx文件,至于微软最新的wpl格式是否支持,没试过,有空可以试试。这里没设置指开始没绑定。
asp
<asp:MediaPlayer ID="MediaPlayer1" runat="server" AutoPlay="True"
Height="200px" MediaSkinSource="~/Articles/Console.xaml" Volume="0.6"
Width="250px" ScaleMode="Stretch">
</asp:MediaPlayer>
然后在页面后台可以绑定对应的歌:
Code
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
BindDetailMethod();
BindMusicMethod();
}
}
//这里用dropdownlist选择自动回发切换歌
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
BindMusicMethod();
}
private void BindMusicMethod()
{
if (DropDownList1.Items[0].Selected)
{
MediaPlayer1.MediaSource = "../uploads/nzny.mp3";
}
if (DropDownList1.Items[1].Selected)
{
MediaPlayer1.MediaSource = "../uploads/iouVM.mp3";
}
}
到此,功能实现,不过还没可以连续播放。等找到方法再补充。这段代码再简单不过,如果歌数目多了,可以用foreach,list,dictionary等配合进行循环绑定,这里不左扩充了。
忘记补充一点,要是绑定asx的。asx文件代码如下:(注意href的路径,如果不成功,最有可能路径的问题)
Code
<ASX version="3.0">
<TITLE>music</TITLE>
<entry>
<title>1</title>
<author></author>
<ref href = "../uploads/iouVM.mp3"/>
<starttime value="0:0:0" />
<duration value="0:5:0" />
</entry>
<entry>
<title>2</title>
<author>古巨基</author>
<ref href="../uploads/nzny.mp3" />
<starttime value="0:0:0" />
<duration value="0:10:0" />
</entry>
</ASX>