我正在使用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元素来实现这一点。
答案 0 :(得分:6)
你建议的覆盖完全没问题,Lea。您显示的属性映射适用于它们传递的数据类型。您可以通过专注于与当前YouTube界面更紧密的匹配来对其进行过度设计,但由于它们可能会再次更改,因此这种方法的简单文档很好。实际上,您可以在XML Mind编辑器中使用之前的CSS:pseudo-element(例如,参见Insert special character using :before pseudo class in css)来告知用户要放置哪些数据(这些行为类似于表单的字段标签,实际上)。你在Ditac中重写这种用法的例子也很好地模拟了人们可以适应DITA OT转换的方式。
答案 1 :(得分:5)
DITA for Publishers项目(http://dita4publishers.sourceforge.net)提供了一个专门的域,以便在DITA专业化的约束下尽可能地与HTML5 <video>
元素平行。标记看起来像这样:
<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项目包括支持从此标记为基于HTML的输出(HTML,EPUB等)生成HTML5视频标记。
答案 2 :(得分:2)
我不确定这是否是正确的方法,但这似乎很有效,并且很容易使用。进一步阅读后,似乎<object>
元素设计用于嵌入视频,媒体和ActiveX控件。
初步检查时,嵌入YouTube视频的过程似乎相当复杂。一些博客/论坛提到复制(旧式)YouTube嵌入代码并放弃与DITA不兼容的部分。不幸的是,据报道这种技术在某些情况下会导致播放问题。
因此,我决定尝试使用<object>
元素,但使用自定义样式表,使整个过程更容易。我不确定这种方法在技术上是否有效,在这一点上可以理解输入。
以下是使用此技术嵌入视频的示例:
<!-- 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输出的方式。幸运的是DITA Converter(又称Ditac)XML Mind非常容易。我只是将以下内容添加到我的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>
在我的情况下,我只对嵌入基于网络的内容的视频感兴趣,因此添加@audience
属性就足够了。但是可以很容易地为打印媒体创建一个替代输出,可能包含URL和描述文本。
答案 3 :(得分:2)
以下标记在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 - 我使用的视频是我们文档的一部分,所以你有一个有效的例子。
<param>
元素指定视频的链接。对于跨浏览器兼容性,请包括所有这三个。<param>
元素指定了您要为视频提供的可选行为。你可能不需要它们。可以创建一个可以减少所需标记的专业化,但在我们的例子中,我们没有包含足够的视频来证明这一努力的合理性。
答案 4 :(得分:0)
Lea - 只需一个注释,您还可以在Flash中嵌入Flash内容(例如,使用Flash编写的YouTube视频播放器以及视频链接)。我没有寻找候选人,但我确信他们存在。如果您使用的PDF渲染引擎支持在PDF中嵌入RichMedia Annotations,则可以将交互式Flash放入PDF中。