如何从 Fluid 中的页面资源输出带有 EXT:blog 的 YouTube 视频?

How do I output a YouTube video with EXT:blog from a page's resources in Fluid?

在 TYPO3 8.7 的 EXT:blog(可能相关也可能不相关)的上下文中,我在 资源 > 文件 > 媒体 > 添加媒体 URL 下添加了一个 YouTube 视频]。这导致对 .youtube 文件的引用。

List\Post.html 中,一个覆盖 EXT:blogPost.html 的流体模板,我可以访问 post.media 数组。 post.media 包含一个 FileReference。使用 <f:image src="thatreference.uid" treatIdAsReference="1" .../> 渲染时,我确实得到了视频的缩略图。

如何确定 post.media 条目是否指的是 YouTube 视频以及如何呈现该视频而不是缩略图?我在 FileReference 上找不到任何有用的属性(例如媒体类型或 YouTube 视频 ID)。我需要走另一条路吗?

只需使用 <f:media /> 即可输出所有媒体类型,包括 youtube 视频

你可以这样做。更多详情 f:media.

你可以这样得到你的文件路径{thatreference.originalResource.publicUrl}

<f:media file="{your file path}" width="400" height="375" additionalConfig="{loop: '1', autoplay: '1'}" />

可以使用 f:media ViewHelper:

输出媒体,包括图像和视频
<f:media file="{thatreference}" width="400" height="375"/>

要确定资源媒体类型,请使用 {thatreference.originalResource.originalFile.type}。值4代表视频,2代表图片:

<f:if condition="{thatreference.originalResource.originalFile.type} == 4">…</f:if>

可以从 {thatreference.originalResource.publicUrl} 中读取原始 YouTube URL 以及从 {thatreference.originalResource.properties} 中读取各种其他属性,例如预览尺寸(对于计算纵横比有用)。