在瀏覽器中搭配 Windows 媒體播放機 控制項使用 SAMI
[與此頁面相關聯的功能Windows 媒體播放機 SDK是舊版功能。 MediaPlayer已取代它。 MediaPlayer已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用MediaPlayer,而不是Windows 媒體播放機 SDK。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
您可以使用基本腳本和Windows 媒體播放機控制項物件模型,在一個檔案中宣告不同的樣式類別,而不是為每個字型樣式或語言建立 SAMI 檔案。 您可以建立自訂控制項,讓使用者選擇不同的樣式和語言選項。 此外,您可以完全控制 Player 介面的設計,以及每個函式的自訂。
如需在網頁中內嵌Windows 媒體播放機控制項的詳細資訊,請參閱網頁中的簡單腳本範例。
下列範例程式碼示範如何使用隱藏式輔助字幕搭配內嵌在網頁中的Windows 媒體播放機控制項。 它包含可讓使用者選取字型樣式和語言的控制項。
<HTML>
<HEAD>
<SCRIPT>
// The following variable is used to prevent multiple initialization.
var initialized = false;
// The following function populates the select boxes.
// It is called the first time the media file is opened.
// Before then, the SAMI settings cannot be retrieved.
function initialize() {
var newOption;
for (var i = 0; i < Player.closedCaption.SAMILangCount; i++) {
newOption = document.createElement("OPTION");
newOption.text = Player.closedCaption.getSAMILangName(i);
newOption.value = newOption.text;
CCLang.options.add(newOption);
}
for (var i = 0; i < Player.closedCaption.SAMIStyleCount; i++) {
newOption = document.createElement("OPTION");
newOption.text = Player.closedCaption.getSAMIStyleName(i);
newOption.value = newOption.text;
CCStyle.options.add(newOption);
}
initialized = true;
}
</SCRIPT>
<!-- The following script code runs when the page is fully loaded. -->
<SCRIPT for="window" event="onload()">
Player.closedCaption.captioningID = "captions";
Player.closedCaption.SAMIFileName = "https://www.proseware.com/Media/seattle.smi";
// The digital media file will open automatically, after which
// the OpenStateChange event (handled below) will fire.
Player.URL = "https://www.proseware.com/Media/seattle.wmv";
</SCRIPT>
<!-- The following script code runs when a media file is opened. -->
<SCRIPT for="Player" event="OpenStateChange(NewState)">
// The first time this event fires, the Player stops and the
// initialize function is called. This allows the user to
// select a language and style before viewing the file.
if (13 == NewState && !initialized) {
Player.controls.stop();
initialize();
}
</SCRIPT>
</HEAD>
<BODY>
<OBJECT
ID="Player"
classID="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"
height="200"
width="250"
>
</OBJECT>
<TABLE height="100" width="250" border="3" bordercolor="blue">
<TR align="center">
<TD bgcolor="white">
<SELECT ID="CCLang" onClick="Player.closedCaption.SAMILang = value"></SELECT>
<SELECT ID="CCStyle" onClick="Player.closedCaption.SAMIStyle = value"></SELECT>
</TD>
</TR>
<TR height="75">
<TD bgcolor="blue">
<DIV id="captions"></DIV>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
相關主題
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應