如何在VBA用户表单

时间:2017-04-05 03:25:21

标签: vba excel-vba windows-media-player wmp excel

我已将Windows Media Player控件嵌入到VBA用户窗体中作为活动X控件。我可以控制视频(开始,停止,暂停等),但无法显示隐藏的字幕/字幕。

看起来我必须使用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>

非常感谢,谢谢。

1 个答案:

答案 0 :(得分:0)

没有找到适合我的解决方案,但最终我去了理智检查。

在全屏模式下测试了WMP,但仍然无法播放字幕文件;在发布之前我应该​​这样做。显然,这与视频格式为mp4 ...

有关

真正的理智检查是切换到VLC并且字幕显示没问题,因此smi文件没有问题 - 但也不是我的解决方案。

如果您偶然发现并想要字幕,解决方案似乎正在下载一组特殊的[非MS]编解码器,它们允许WMP显示字幕,但我没有尝试过,因为它也不可行我的解决方案。

MS是如何错过这个超出我的 - 似乎是如此基本,如此微不足道,但你有它。