上篇介绍的 TBActiveX 控件,它可以支持网页 Media Player 的设定,这跟前面提及的 TBMediaPlayer 功能相同。TBActiveX 具有网页设定 ActiveX 通用属性,所以 TBMediaPlayer 基本上是可以由 TBActiveX 继承下来,再加入 Media Player 特有的属性即可。本文将原来的 TBMediaPlayer 控件,继承的父类别由 WebControl 改为 TBActiveX 类别,重新改写 TBMediaPlayer 控件。
程序代码下载:ASP.NET Server Control - Day12.rar
一、改写 TBMediaPlayer 控件
TBMediaPlayer 控件原本是继承 WebControl,现改继承对象为 TBActiveX,来重新改写 TBMediaPlayer 控件。
step1. TBMediaPlayer 继承至 TBActiveX
新增 TBMediaPlayer 控件,继承至 TBActiveX,并在建构函式设定 Media Player ActiveX 的 ClassId。
Public Class TBMediaPlayer
Inherits TBActiveX
''' <summary>
''' 建構函式。
''' </summary>
Sub New()
MyBase.ClassId = "6BF52A52-394A-11D3-B153-00C04F79FAA6"
End Sub
End Class
step2. 加入相关属性
跟原来的 TBMediaPlayer 控件一样,加入 Url、AutoStart、UIMode 三个属性,可视情形加入需要设定的属性。
step3. 加入 Media Player 参数
覆写 CreateChildControls 方法,动态依属性设定在 Params 集合属性加入参数。虽然 TBMediaPlayer 控制项目前只有 Url、AutoStart、UIMode 三个属性,但是父类别 TBActiveX 具有 Params 集合属性,所以开发人员可以视需求加入其它未定义的参数。
''' <summary>
''' 加入 MediaPlayer 參數。
''' </summary>
''' <param name="Name">參數名稱。</param>
''' <param name="Value">參數值。</param>
Private Sub AddParam(ByVal Name As String, ByVal Value As String)
Dim oParam As TBActiveXParam
oParam = New TBActiveXParam(Name, Value)
Me.Params.Add(oParam)
End Sub
''' <summary>
''' 覆寫 CreateChildControls 方法。
''' </summary>
Protected Overrides Sub CreateChildControls()
'加入 Url 參數
If Me.Url <> String.Empty Then
AddParam("URL", Me.ResolveClientUrl(Me.Url))
End If
'加入 autoStart 參數
If Me.AutoStart Then
AddParam("autoStart", "true")
End If
'加入 uiMode 參數
If Me.UIMode <> EUIMode.NotSet Then
AddParam("uiMode", Me.UIMode.ToString)
End If
MyBase.CreateChildControls()
End Sub
二、执行程序
在页面拖曳 TBMediaPlayer 控件,设定 Url、AutoStart、UIMode 属性,若有需要加入其它参数,可自行设定 Params 集合属性。执行程序就可以在页面上看到呈现出来的 Media Player。
<bee:TBMediaPlayer ID="TBMediaPlayer1" runat="server" AutoStart="True"
Height="249px" Url="D:\Movie_01.wmv" Width="250px">
</bee:TBMediaPlayer>
备注:本文同步发布于「第一届iT邦帮忙铁人赛」,如果你觉得这篇文章对您有帮助,记得连上去推鉴此文增加人气 ^^
http://ithelp.ithome.com.tw/question/10012196