3

我正在使用 DITA 生成用户文档并生成 PDF 和 XHTML 可交付成果。我可以使用哪个 DITA 元素嵌入 YouTube 视频?

理想情况下,我更愿意使用样式表生成嵌入代码,并以某种方式将视频链接添加到文档中。下面是我设想这样一个元素使用伪标记的样子:

<fig audience="web">
    <title>YouTube 101: How to Find What's Hot on YouTube</title>
    <video href="http://www.youtube.com/watch?feature=player_embedded&v=FEyRza0rJyI">
        <alt>This video explains how to tap into the cultural zeitgeist happening on YouTube right now.</alt>
    </video>
</fig>

如果可能的话,我更愿意使用标准 DITA 元素之一来实现这一点。

4

5 回答 5

6

你建议的覆盖非常好,Lea。您显示的属性映射适用于它们通过的数据类型。您可以通过专门与当前 YouTube 界面更接近的匹配来过度设计它,但由于它们可能会再次更改,因此这种方法的简单文档是可以的。实际上,您也许可以在 XML Mind 编辑器中使用 CSS before: 伪元素(例如,参见Insert special character using :before pseudo class in css)来通知用户将哪些数据放在哪里(这些行为类似于字段标签对于表格,实际上)。您在 Ditac 中覆盖这种用法的示例密切模拟了某人可以适应 DITA OT 转换的方式。

于 2013-01-19T20:44:06.180 回答
5

DITA for Publishers 项目 ( http://dita4publishers.sourceforge.net ) 提供了一个专门化的域,以便它<video>在 DITA 专门化的约束下尽可能接近地与 HTML5 元素平行。标记如下所示:

<fig
  outputclass="image">
  <d4p_video
    id="E5123_026.mp4"
    width="300"
    height="300">
    <d4p_video_poster
      value="../images/E5123_026_poster.png"/>
    <d4p_video_source
      value="../images/E5123_026.mp4"
      type="video/mp4"/>
  </d4p_video>
</fig>

标记在 d4p_mediaDomain 中定义。DITA for Publishers 项目支持从此标记生成 HTML5 视频标记,用于基于 HTML 的输出(HTML、EPUB 等)。

于 2013-02-12T23:34:53.117 回答
3

以下标记在 DITA-OT 1.5.4 和 1.7.2 中正常工作(可能介于两者之间):

<object width="640" height="360" data="//www.youtube.com/embed/vwh93zo7_oU?rel=0">
    <param name="src" value="//www.youtube.com/embed/vwh93zo7_oU?rel=0"/>
    <param name="movie" value="//www.youtube.com/embed/vwh93zo7_oU?rel=0"/>
    <param name="allowFullScreen" value="true"/>
    <param name="allowscriptaccess" value="always"/>
</object>

显然,在所有三个位置替换您的视频 ID — 我使用了一个视频,它是我们文档的一部分,因此您将有一个工作示例。

  • @width 和 @height 属性定义了显示视频的框的大小。
  • @data 属性和前两个<param>元素指定视频的链接。为了跨浏览器的兼容性,包括所有三个。
  • 最后两个<param>元素指定您希望允许视频的可选行为。你可能不需要它们。

可以创建一个专业化来减少所需的标记,但在我们的例子中,我们没有包含足够的视频来证明这一努力是合理的。

于 2013-03-07T13:32:44.387 回答
2

我不确定这是否是正确的方法,但这似乎确实有效并且很容易使用。进一步阅读后,该元素似乎<object>是为嵌入视频、媒体和 ActiveX 控件而设计的。

在初步检查中,嵌入 YouTube 视频的过程似乎相当复杂。一些博客/论坛提到复制(旧式)YouTube 嵌入代码并放弃与 DITA 不兼容的部分。不幸的是,据报道这种技术在某些情况下会导致播放问题。

因此,我决定尝试使用该<object>元素,但使用自定义样式表使整个过程更容易。我不确定这种方法在技术上是否有效,在这一点上将不胜感激。

  • @type - 指定值“youtube”以触发自定义 XSL 呈现。
  • @data - YouTube 视频 ID 可以从嵌入代码中复制。
  • @width(可选)- 浏览器中 YouTube 视频的宽度,默认为 600 像素。
  • @height(可选)- 浏览器中 YouTube 视频的高度,默认为 450 像素。

以下是使用此技术嵌入视频的示例:

<!-- DITA markup -->
<fig audience="web">
    <title>YouTube 101: How to Find What's Hot on YouTube</title>
    <object type="youtube" data="FEyRza0rJyI">
        <desc>This video explains how to tap into the cultural zeitgeist happening on YouTube right now.</desc>
    </object>
</fig>

为了完成这项工作,有必要改变生成 XHTML 输出的方式。幸运的是,使用XML Mind的DITA 转换器(又名 Ditac)非常容易。我只是将以下内容添加到我的 XSL 自定义样式表中:

<!-- Customize html output (works with DITA Converted by XML Mind) -->
<xsl:template match="*[contains(@class,' topic/object ') and @type='youtube']">
    <iframe src="http://www.youtube-nocookie.com/embed/{@data}?rel=0" frameborder="0" allowfullscreen="allowfullscreen">
        <xsl:attribute name="width" select="if (@width) then @width else '600'"/>
        <xsl:attribute name="height" select="if (@height) then @height else '450'"/>
        <xsl:call-template name="commonAttributes"/>
        <xsl:call-template name="namedAnchor"/>
    </iframe>
</xsl:template>

就我而言,我只对嵌入基于 Web 的内容的视频感兴趣,因此添加该@audience属性就足够了。但是很容易为印刷媒体创建一个替代输出,可能带有一个 URL 和描述文本。

于 2013-01-17T17:14:09.127 回答
0

Lea - 只需一个注释,您还可以在 PDF 中嵌入 Flash 内容(例如,用 Flash 编写的带有视频链接的 youtube 视频播放器)。我没有寻找候选人,但我确信他们存在。如果您使用的 PDF 渲染引擎支持在 PDF 中嵌入 RichMedia Annotations,您可以将交互式 Flash 直接放入 PDF。

于 2013-06-18T23:07:25.133 回答