实现该例子一定要安装 WPF/E和SDK。
1、新建一个wpf/e Javascript Application。
2、修改 plugin.xaml,增加 MediaElement 元素(红色粗体部分)
<canvas xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Loaded="javascript:root_Loaded">
<Canvas x:Name="button">
<Rectangle Stroke="#FF8E8E8E" StrokeThickness="2" RadiusX="2" RadiusY="2" Height="23" Width="75">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0.5,2.109" EndPoint="0.5,-1.109">
<GradientStop x:Name="gradientStop1" Color="#FFFF9E00" Offset="1"/>
<GradientStop x:Name="gradientStop2" Color="#FFEAEAEA" Offset="0.218"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<TextBlock Canvas.Top="3" Canvas.Left="13" FontSize="12" Foreground="#FF5A5A5A" Text="Click Me" />
</Canvas>
<Canvas x:Name="video">
<MediaElement x:Name="mediaElement" Canvas.Top="0" Canvas.Left="0" Height="400" Width="400" />
</Canvas>
</Canvas>
3、增加一个新的.aspx页面,命名为webform1.aspx。把default.html里源html代码复制粘贴到webform1.aspx里(只保留第一行page指令)。完成后webform1.aspx为:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WPFEJSApplication1.WebForm1" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
<script type="text/javascript" src="js/aghost.js"></script>
<script type="text/javascript" src="js/eventhandlers.js"></script>
</head>
<body>
<form>
<div id="wpfeControl1Host" >
<script type="text/javascript">
new agHost("wpfeControl1Host", // hostElementID (HTML element to put WPF/E control into)
"wpfeControl1", // ID of the WPF/E ActiveX control we create
"400", // Width
"400", // Height
"white", // Background color
null, // SourceElement (name of script tag containing xaml)
"plugin.xaml", // Source file
"false", // IsWindowless
"30", // MaxFrameRate
null // OnError handler
);
</script>
</div>
</form>
</body>
</html>
4、在webform1.aspx的<head>里增加播放媒体的脚本:
<script>
function playMedia()
{
var wpfeControl = document.getElementById("wpfeControl1");
var mediaElement = wpfeControl.findName("mediaElement");
mediaElement.source = '<%=Request["src"]%>';
mediaElement.width = 400;
mediaElement.height = 400;
mediaElement.play();
}
</script>
5、打开js目录里的eventhandlers.js,在handlemouseup方法最后增加开始播放的脚本:
function handleMouseUp(sender, eventArgs) {
var gradientStop1 = sender.findName("gradientStop1");
var gradientStop2 = sender.findName("gradientStop2");
gradientStop1.offset = 1;
gradientStop2.offset = .403;
alert("Clicked");
playMedia();
}
6、设置webform1.aspx为起始页,按f5调试运行。在打开的ie中重新输入url为http://你的Web服务器/WebForm1.aspx?src=http://localhost/test.wmv 。后面跟的 src= 参数为你所要播放的媒体文件的地址。至此,效果图如下。你按Click Me后,弹出"Clicked"对话框,按确定后开始播放媒体文件。
你可以在网页中嵌入上述代码(或用iframe)页面,并指定媒体文件地址实现页面嵌入播放指定媒体的功能。当然,你还可以扩展使之像一个web mediaplayer或一个web电影院。