如何在 VBA 用户表单上显示 windows 媒体播放器隐藏式字幕
How to display windows media player closed captions on VBA userform
我已将 windows 媒体播放器控件作为活动 X 控件嵌入到 VBA 用户窗体中。我可以控制视频(开始、停止、暂停等),但无法显示隐藏字幕。
看起来我必须使用 smi / sami 文件,但是我无法让它工作...似乎缺少 MS 文档,更侧重于网页:-(
以下是intellisense提供的4个(必填?)元素,均为字符串:
me.WindowsMediaPlayer1.closedCaption.captioningId
me.WindowsMediaPlayer1.closedCaption.SAMIFileName = path & "cut.smi" ' Got this one
me.WindowsMediaPlayer1.closedCaption.SAMILang
me.WindowsMediaPlayer1.closedCaption.SAMIStyle
鉴于以下 SAMI 文件,我应该如何配置 WMP 才能显示隐藏式字幕?
<SAMI>
<HEAD>
<TITLE>SAMI Example</TITLE>
<SAMIParam>
Media {cut.mp4}
Metrics {time:ms;}
Spec {MSFT:1.0;}
</SAMIParam>
<STYLE TYPE="text/css">
<!--
P { font-family: Arial; font-weight: normal; color: white; background-color: black; text-align: center; }
#Source {color: red; background-color: blue; font-family: Courier; font-size: 12pt; font-weight: normal; text-align: left; }
.ENUSCC { name: English; lang: en-US ; SAMIType: CC ; }
.FRFRCC { name: French; lang: fr-FR ; SAMIType: CC ; }
-->
</STYLE>
</HEAD>
<BODY>
<!-- Open play menu, choose Captions and Subtiles, On if available -->
<!-- Open tools menu, Security, Show local captions when present -->
<SYNC Start=0>
<P Class=ENUSCC ID=Source>The Speaker</P>
<P Class=ENUSCC>SAMI 0000 text</P>
<P Class=FRFRCC ID=Source>French The Speaker</P>
<P Class=FRFRCC>French SAMI 0000 text</P>
</SYNC>
<SYNC Start=1000>
<P Class=ENUSCC>SAMI 1000 text</P>
<P Class=FRFRCC>French SAMI 1000 text</P>
</SYNC>
<SYNC Start=2000>
<P Class=ENUSCC>SAMI 2000 text</P>
<P Class=FRFRCC>French SAMI 2000 text</P>
</SYNC>
<SYNC Start=3000>
<P Class=ENUSCC>SAMI 3000 text</P>
<P Class=FRFRCC>French SAMI 3000 text</P>
</SYNC>
</BODY>
</SAMI>
非常感谢帮助,谢谢。
没有找到适合我的解决方案,但最终我进行了健全性检查。
在全屏模式下测试了WMP,仍然完全无法播放字幕文件;我应该在发布之前这样做。显然这与视频格式为 mp4 有关...
真正的健全性检查是切换到 VLC 并且字幕显示没有问题,所以不是 smi 文件的问题 - 但对我来说也不是解决方案。
如果您无意中发现了这个并且想要字幕,一个解决方案似乎是下载一组允许 WMP 显示字幕的特殊 [非 MS] 编解码器,但我没有尝试过这个,因为它也不是对我来说是一个可行的解决方案。
我无法理解 MS 是如何错过这个的 - 看起来很基本,很琐碎,但你已经知道了。
我已将 windows 媒体播放器控件作为活动 X 控件嵌入到 VBA 用户窗体中。我可以控制视频(开始、停止、暂停等),但无法显示隐藏字幕。
看起来我必须使用 smi / sami 文件,但是我无法让它工作...似乎缺少 MS 文档,更侧重于网页:-(
以下是intellisense提供的4个(必填?)元素,均为字符串:
me.WindowsMediaPlayer1.closedCaption.captioningId
me.WindowsMediaPlayer1.closedCaption.SAMIFileName = path & "cut.smi" ' Got this one
me.WindowsMediaPlayer1.closedCaption.SAMILang
me.WindowsMediaPlayer1.closedCaption.SAMIStyle
鉴于以下 SAMI 文件,我应该如何配置 WMP 才能显示隐藏式字幕?
<SAMI>
<HEAD>
<TITLE>SAMI Example</TITLE>
<SAMIParam>
Media {cut.mp4}
Metrics {time:ms;}
Spec {MSFT:1.0;}
</SAMIParam>
<STYLE TYPE="text/css">
<!--
P { font-family: Arial; font-weight: normal; color: white; background-color: black; text-align: center; }
#Source {color: red; background-color: blue; font-family: Courier; font-size: 12pt; font-weight: normal; text-align: left; }
.ENUSCC { name: English; lang: en-US ; SAMIType: CC ; }
.FRFRCC { name: French; lang: fr-FR ; SAMIType: CC ; }
-->
</STYLE>
</HEAD>
<BODY>
<!-- Open play menu, choose Captions and Subtiles, On if available -->
<!-- Open tools menu, Security, Show local captions when present -->
<SYNC Start=0>
<P Class=ENUSCC ID=Source>The Speaker</P>
<P Class=ENUSCC>SAMI 0000 text</P>
<P Class=FRFRCC ID=Source>French The Speaker</P>
<P Class=FRFRCC>French SAMI 0000 text</P>
</SYNC>
<SYNC Start=1000>
<P Class=ENUSCC>SAMI 1000 text</P>
<P Class=FRFRCC>French SAMI 1000 text</P>
</SYNC>
<SYNC Start=2000>
<P Class=ENUSCC>SAMI 2000 text</P>
<P Class=FRFRCC>French SAMI 2000 text</P>
</SYNC>
<SYNC Start=3000>
<P Class=ENUSCC>SAMI 3000 text</P>
<P Class=FRFRCC>French SAMI 3000 text</P>
</SYNC>
</BODY>
</SAMI>
非常感谢帮助,谢谢。
没有找到适合我的解决方案,但最终我进行了健全性检查。
在全屏模式下测试了WMP,仍然完全无法播放字幕文件;我应该在发布之前这样做。显然这与视频格式为 mp4 有关...
真正的健全性检查是切换到 VLC 并且字幕显示没有问题,所以不是 smi 文件的问题 - 但对我来说也不是解决方案。
如果您无意中发现了这个并且想要字幕,一个解决方案似乎是下载一组允许 WMP 显示字幕的特殊 [非 MS] 编解码器,但我没有尝试过这个,因为它也不是对我来说是一个可行的解决方案。
我无法理解 MS 是如何错过这个的 - 看起来很基本,很琐碎,但你已经知道了。