有几种不同的方法可以在网页上显示视频。 最受欢迎的是Windows Media Player,Quick Time,Adobe Flash或Silverlight。 如果您想了解如何使用Windows Media Player显示视频,则可以阅读如何构建ASP.NET Media Player控件教程。
本教程将重点介绍如何使用Flash在ASP.NET网站上显示Flash视频文件。
Flash已被广泛使用,如今已成为在Internet上播放电影的最常用的技术。 大多数流行的视频共享网站(例如YouTube或Google Video)都使用Flash。 它与几乎所有操作系统和Web浏览器兼容,并且在Internet用户计算机上非常普遍。 要观看Flash电影,用户需要安装Flash Player。 根据我的经验,至少有95%的访客安装了Flash Player,这比其他可用技术还多。 Flash是客户端技术,尽管它可以与静态HTML页面一起使用,但通常由服务器端Web应用程序操纵。
您不能直接显示Flash视频文件。 Flash只是一个使用Action Script编程语言的编程框架。 您需要使用Flash(视频播放器)制作的程序才能在页面上显示.flv视频。 您当然可以学习动作脚本并开发自己的播放器,但这超出了本教程的范围。 我将把任务留给Flash开发人员。 幸运的是,已经有一些免费且非常出色的Flash视频播放器。 使用它们将缩短您的开发周期,并为您提供优质的解决方案。 我选择了JW FLV Player作为最佳解决方案。
在网页上使用JW FLV Player
将Flash应用程序放置到网页时,有两个基本步骤:
- 首先,声明并启动Flash对象
- 其次,根据需要设置对象的属性。
<OBJECT >
和,或者使用JavaScript。
使用静态HTML,您的代码可能如下所示:
<object width=”640″ height=”480″>
<param name=”movie” value=”player.swf” />
</object>
我们需要<object >
和标记来获得浏览器兼容性。
Internet Explorer使用<object
>标记,但是Firefox和Netscape看不到它,只能识别。
我们使用<param >
标记和内部标记来设置参数。
上面的代码示例添加了参数名称“ movie”和值“ player.swf”。 您可以用相同的方式添加任何其他参数。
您可以在其Flash vars页面上看到JW FLV Player支持的参数的完整列表。
http://cdn5.tribalfusion.com/media/2...300x250_v8.swf如果访问者使用Internet Explorer访问,则静态HTML会出现问题。 除非访问者单击它,否则Flash应用程序将无法启动。 如果只是将光标放在电影上,您会看到一个丑陋的边框。 避免每次页面加载时都需要使用JavaScript启动Flash Player的常见方法。 启动Flash电影JavaScript代码如下所示:
<p id=’preview’>The player will show in this paragraph</p>
<script type=’text/javascript’ src=’swfobject.js’></script>
<script type=’text/javascript’>
var s1 = new SWFObject(‘player.swf’,'player’,’400′,’300′,’9′);
s1.addParam(‘allowfullscreen’,'true’);
s1.addParam(‘allowscriptaccess’,'always’);
s1.addParam(‘flashvars’,'file=video.flv’);
s1.write(‘preview’);
</script>
如您所见,这里没有什么复杂的。
代码动态创建SWFObject,然后设置其参数。
在这种情况下,不需要访客单击即可开始播放电影。
当然,必须在访问者的Web浏览器中启用JavaScript。
使用ASP.NET操纵Flash Player
基本上,使用JW FLV Player播放视频文件很简单,您只需创建一个对象并设置所需的参数即可,如上面的两个代码示例所示。 但是,如果您处理大量视频文件,或者需要使用户能够添加他们的电影,则需要使事情自动化。 为每个视频编写静态HTML代码当然听起来并不专业。 幸运的是,仅需一点ASP.NET代码,我们就可以使此任务变得更加容易。
创建一个自定义ASP.NET Flash Player控件
基本思想是:自定义ASP.NET控件将具有与JW FLV Player参数相关的属性。 在运行时,控件将在客户端呈现适当的内容,因此JW FLV播放器将正确显示视频,并且您可以使用ASP.NET Web应用程序处理Flash视频。 现在,我们可以创建管理ASP.NET页,从数据库加载视频,启用数据库搜索等,而无需进行硬编码。
我创建了执行此任务的ASP.NET JW FLV Flash Video Player控件。 控件是免费的,您可以使用它在网站上显示Flash视频文件。 控制源代码也可以在C#和VB.NET中获得。 下载中包含示例Web项目,以了解其工作原理。
Flash Player控制代码分析
从C#和VB.NET代码清单中可以看到,控制代码由三部分组成:
1.首先声明属性默认值。 对于服务器控制,我使用了与JW FLV Flash Player已经使用的相同的默认值。 我添加了两个附加属性来描述JW FLV .swf和.js文件的位置,如下面的代码所示。
[ C# ]
#region Properties defaults
const string DefaultSwfobject_jsLocation = “”; // in the same directory
const string DefaultFlashPlayerLocation = “”; // in the same directory
const bool DefaultAllowFullScreen = true;
const string DefaultFile = “”;
const bool DefaultAutoStart = false;
const int DefaultBufferLength = 1;
…
#endregion
[VB.NET]
#Region ”Properties defaults”
Const DefaultSwfobject_jsLocation As String = “” ’ in the same directory
Const DefaultFlashPlayerLocation As String = “” ’ in the same directory
Const DefaultAllowFullScreen As Boolean = True
Const DefaultFile As String = “”
Const DefaultAutoStart As Boolean = False
Const DefaultBufferLength As Integer = 1
…
#End Region
2.如果每个属性的值与默认值不同,则将其保存到ViewState。
例如,AllowFullScreen属性的代码如下所示:
[ C# ]
[Bindable(true), Category("Settings")]
bool AllowFullScreen
{
get
{
if(ViewState["AllowFullScreen"] == null)
return DefaultAllowFullScreen;
else
return (bool)ViewState["AllowFullScreen"];
}
set
{
if(value != DefaultAllowFullScreen)
ViewState["AllowFullScreen"] = value;
else
ViewState["AllowFullScreen"] = null;
}
}
[VB.NET]
<Bindable(True), Category(“Settings”)> _
Property AllowFullScreen() As Boolean
Get
If ViewState(“AllowFullScreen”) Is Nothing Then
Return DefaultAllowFullScreen
Else
Return ViewState(“AllowFullScreen”)
End If
End Get
Set(ByVal value As Boolean)
If value <> DefaultAllowFullScreen Then
ViewState(“AllowFullScreen”) = value
Else
ViewState(“AllowFullScreen”) = Nothing
End If
End Set
End Property
3. RenderContents函数产生输出,取决于每个属性的值,如前所述,通过使用JavaScript在客户端正确初始化Flash Player。
结论
使用可操作客户端Flash Player的自定义ASP.NET Flash Player控件,您可以节省大量时间。 我在Firefox和Internet Explorer中测试了控件,并且运行良好。 如果您发现一些错误或有改进建议,请告诉我。
使用ASPNetFlashVideo走向专业
本教程中介绍的控件在某些简单的场景中很有用,但请记住,JW FLV Player仅对非商业项目免费。 幸运的是,有一个名为ASPNetFlashVideo的纯ASP.NET控件,它使您可以轻松地将精美的Adobe Flash Video(FLV)媒体合并到ASP.NET网站中。 只需49美元,您就可以在单个站点上使用它,或者仅需99美元即可在无限数量的网站上使用。 除用于播放Flash视频文件的常用界面命令外,ASPNetFlashVideo支持皮肤,自定义用户界面,播放列表,与Visual Studio集成,搜索引擎优化等。 无需持续的订阅费用,免费的将来更新或30天的退款保证,就可以决定尝试一下。