使用SharePoint 2010内置的媒体播放器

SharePoint 2010 内置了一个基于Silverlight的媒体播放器,并且SharePoint 2010内置的一些WebPart会检测其输出内容中的链接,如果链接指向一个媒体文件,那么点击该链接之后就会在当前页面弹出这个播放器进行播放。那么如果我们自己开发了一些功能,要如何使用这个内置播放器呢?本文以一个同样基于Silverlight的幻灯片应用来举例说明,过程并不复杂,很容易应用到服务器端代码或JavaScript等其他开发方式中。

首先我们需要在页面中引入mediaplayer.js,在Silverlight里可以这样写:

if (!System.ComponentModel.DesignerProperties.IsInDesignTool && HtmlPage.Document.GetElementById("IDS_Script_MediaPlayer") == null)
{
HtmlElement script = HtmlPage.Document.CreateElement("script");
script.SetAttribute("id", "IDS_Script_MediaPlayer");
script.SetAttribute("type", "text/javascript");
script.SetAttribute("src", "/_layouts/mediaplayer.js");
HtmlPage.Document.Body.AppendChild(script);
}

之后在适当的时候,提前创建一个播放器:

ScriptObject mediaPlayer = HtmlPage.Window.Eval("mediaPlayer") as ScriptObject;
if (mediaPlayer != null)
{
mediaPlayer.Invoke("createOverlayPlayer");
}

当用户点击了链接时,先判断链接的扩展名是不是被支持的媒体文件,然后根据情况决定弹出播放器或者直接打开链接:


Regex regex = new Regex("\\.wmv|\\.wma|\\.mp3|\\.mp4");
if (this.regex.IsMatch(url))
{
ScriptObject mediaPlayer = HtmlPage.Window.Eval("mediaPlayer") as ScriptObject;
if(mediaPlayer!=null)
{
ScriptObject overlayPlayer;
try
{
overlayPlayer = mediaPlayer.Invoke("getOverlayPlayer") as ScriptObject;
if(overlayPlayer==null)
throw new Exception();
}
catch
{
mediaPlayer.Invoke("createOverlayPlayer");
overlayPlayer = mediaPlayer.Invoke("getOverlayPlayer") as ScriptObject;
}
try
{
overlayPlayer.SetProperty("MediaSource", news.Url.ToString());
overlayPlayer.SetProperty("MediaTitle", news.Title);
overlayPlayer.SetProperty("DisplayMode", "Overlay");
overlayPlayer.Invoke("Play");
}
catch
{
HtmlPage.Window.Navigate(news.Url, "_blank");
}
}
}
else
HtmlPage.Window.Navigate(news.Url, "_blank");

发表评论

电子邮件地址不会被公开。 必填项已用*标注