要注意的是,该方法有个参数是以HtmlTextWriter为对象的output,它可以设置向浏览器输出HTML,它有很多方法和属性,比如AddAttribute和RenderBeginTag。
接下来我们为控件增加向浏览器输出的方法代码了,如下:
- protected override void RenderContents(HtmlTextWriter output)
- {
- output.AddAttribute(HtmlTextWriterAttribute.Id, this.ID);
- output.AddAttribute(HtmlTextWriterAttribute.Width, this.Width.ToString());
- output.AddAttribute(HtmlTextWriterAttribute.Height, this.Height.ToString());
-
- if (DisplayControlButtons == true)
- {
- output.AddAttribute("controls", "controls");
- }
-
- if (PosterUrl != null)
- {
- output.AddAttribute("poster", PosterUrl);
- }
-
- if (AutoPlay == true)
- {
- output.AddAttribute("autoplay", "autoplay");
- }
-
- if (Loop == true)
- {
- output.AddAttribute("loop", "loop");
- }
- }
步骤6 输出VIDEO标签内容
紧接着,就可以输出video标签内的内容了,接着增加如下代码:
- output.RenderBeginTag("video");
- if (OggUrl != null)
- {
- output.AddAttribute("src", OggUrl);
- output.AddAttribute("type", "video/ogg");
- output.RenderBeginTag("source");
- output.RenderEndTag();
- }
-
- if (Mp4Url != null)
- {
- output.AddAttribute("src", Mp4Url);
- output.AddAttribute("type", "video/mp4");
- output.RenderBeginTag("source");
- output.RenderEndTag();
- }
- output.RenderEndTag();
我们在输出标签的内容时,先使用了RenderBeginTag方法往浏览器端输出一个标签video,并使用RenderEndTag指示标签内容已经输出完毕。接下来在上面的代码中我们判断指定的文件格式的视频文件是否存在,如果存在的话,则按指定的文件格式输出。
最后,为了防止ASP.NET 控件在向浏览器输出时,带有span标签,我们可以把它移走,只需要重写render方法即可,如下:
- protected override void Render(HtmlTextWriter writer)
- {
- this.RenderContents(writer);
- }
步骤7 编译生成控件
选择Build 菜单,生成整个解决方案,如下图:
步骤8 将控件放到工具箱去
接下来要把我们做好的控件放到工具箱中去以方便今后使用。步骤如下:
1) 打开工具箱视图,鼠标右键在空白的地方,在弹出的菜单中点choose item,
2) 在弹出的菜单中选择.NET 组件卡,并选择浏览,浏览我们刚做好的CustomerControll工程中的bin\debug目录下的CustomControls.DLL,最后点确定,如下图所示:
这个时候,该控件就会在工具箱出现了,如下图:
步骤8 把控件加到aspx页面
我们可以随便新建立一个aspx页面,把控件从工具箱拖拉到页面中就可以了,可以看到如下代码:
<cc1:VideoPlayer ID="VideoPlayer1" runat="server" Mp4Url="videos/movie.mp4" OggUrl="videos/movie.ogg" Width="400" Height="300" />
我们还可以在design设计视图时,具体指定这个控件的每个属性的值得了,看,是不是很简单方便?
最后运行我们的程序,可以看到如下所示的播放器了:
(责任编辑:admin) |