您的位置:首页 > 编程语言 > Java开发

用javascrip设置silverlight mediaelement的播放时刻

2007-10-06 14:48 211 查看
这两天在用silverlight做一个媒体播放器,有两项基本功能要实现,即

1 显示当前播放时间

2 跳转到特定时间开始播放

经过查阅资料,实现上述功能可以用MediaElement的Position属性来实现。例如,用javascript获取当前播放时间可以写成这样

fuction GetTime(sender,arg)

{

var host = sender.getHost();

var mediaPlayer = Convert.ToMediaElement(host.content.findName('player));

var curPos = mediaPlayer .get_position();

var array = curPos.Seconds.toString().split('.',2);

var hour = parseInt(array[0]/ 3600);

var minutes = parseInt((array[0]% 3600) / 60);

var seconds = parseInt(array[0]% 60);

var milliseconds = array[1].substring(0,3);

//show time here....

}

上面代码中的Convert.ToMediaElement()方法是由Justin-Josef Angel 提供的intellisense,此处不多介绍。需要注意的是这一句:

curPos.Seconds.toString()

因为position返回的是timespan对象,并且只提供了一个Secondes属性,表示将整个时间换算成秒以后的值,因此只能通过该属性来计算其他时、分、毫秒。

同样,我们可以通过position来定位播放的新时刻:

fuction SetTime(sender,arg)

{

var host = sender.getHost();

var mediaPlayer = Convert.ToMediaElement(host.content.findName('player));

var newPos = "0.10:23:45.345";

mediaPlayer.set_position(newPos);

}

设置position时,并不能直接将一个timespan对象作为参数,例如

var pos = mediaPlayer.get_position();

mediaPlayer.set_position(pos);

执行时就会报错,原因是set_position只接受格式为 天.时:分:秒.毫秒 的字符串。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: