【问题标题】:Which DITA element can be used to embed YouTube videos?哪个 DITA 元素可用于嵌入 YouTube 视频?
【发布时间】:2013-01-17 15:20:27
【问题描述】:

我正在使用 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 元素之一来实现这一点。

【问题讨论】:

    标签: xml video xml-documentation dita


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      <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 等)。

      【讨论】:

        【解决方案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 属性和前两个&lt;param&gt; 元素指定视频的链接。为实现跨浏览器兼容性,请包括所有三个。
        • 最后两个&lt;param&gt; 元素指定您希望允许视频的可选行为。您可能不需要它们。

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

        【讨论】:

          【解决方案4】:

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

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

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

          • @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 MindDITA Converter(又名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 和描述文本为印刷媒体创建替代输出会很容易。

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              猜你喜欢
              • 2011-10-28
              • 1970-01-01
              • 2019-04-01
              • 2019-08-28
              • 2019-01-31
              • 2016-04-20
              • 2016-04-02
              • 2018-06-08
              • 1970-01-01
              相关资源
              最近更新 更多