在早期 ASP.NET WebForms 專案中,常需在頁面內嵌播放器播放伺服器端影片檔案。本文記錄使用 ActiveX 控制項(Windows Media Player)實現的完整流程。
在 `.aspx` 頁面中插入 `
<OBJECT id="RAOCX"
classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"
width="100%" height="385"
VIEWASTEXT>
<PARAM NAME="AUTOSTART" VALUE="true" />
<PARAM NAME="SRC" VALUE="<%= VideoUrl %>" />
<PARAM NAME="CONTROLS" VALUE="imagewindow" />
<PARAM NAME="CONSOLE" VALUE="Clip1" />
<PARAM NAME="BACKGROUNDCOLOR" VALUE="#000000" />
<!-- 其他參數省略 -->
</OBJECT>
| 參數 | 用途 |
|---|---|
| classid | Windows Media Player ActiveX 的 CLSID,固定值 |
| SRC | 媒體來源 URL,**核心動態綁定點** |
| AUTOSTART | true=載入即播放;false=需使用者點擊 |
| CONTROLS | imagewindow=僅顯示影像區域;full=完整控制列 |
| CONSOLE | 命名控制台,配合多播放器同步控制 |
public partial class VideoPlayPage : System.Web.UI.Page
{
protected string VideoUrl = ""; // 對應前端 <%= VideoUrl %>
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName != "PlayVideo") return;
int rowIndex = Convert.ToInt32(e.CommandArgument);
// 假設第 7 欄 (index 6) 存檔名(含副檔名)
string fileName = GridView1.Rows[rowIndex].Cells[6].Text;
// 組合相對路徑:影片存放於網站根目錄下的 info 資料夾
VideoUrl = "info/" + fileName;
// 觸發頁面重新渲染,前端 OBJECT 的 SRC 參數將更新
}
}
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:BoundField DataField="VideoName" HeaderText="影片名稱" />
<asp:ButtonField CommandName="PlayVideo" Text="播放"
ButtonType="Button" HeaderText="操作" />
</Columns>
</asp:GridView>
透過 `