上篇介紹的 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。
Height="249px" Url="D:\Movie_01.wmv" Width="250px">
</bee:TBMediaPlayer>
備注:本文同步釋出于「第一屆iT邦幫忙鐵人賽」,如果你覺得這篇文章對您有幫助,記得連上去推鑒此文增加人氣 ^^
http://ithelp.ithome.com.tw/question/10012196