我正在尝试在投影仪演示文稿中嵌入一段短视频(少于两秒),并且我需要它在播放幻灯片时自动启动并不断重复。
由于 Flash 不再受支持,尝试了许多解决方案后都不起作用,我设法使用 @AlexG 的代码嵌入视频https://tex.stackexchange.com/a/516102/263164
无论如何,此解决方案不包含循环选项。我尝试将其添加到Flash变量就像在媒体9但它对我不起作用。
我在下面粘贴了我的代码的可编译示例:
\documentclass{beamer}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[bigfiles]{pdfbase}
\ExplSyntaxOn
\NewDocumentCommand\embedvideo{smm}{
\group_begin:
\leavevmode
\tl_if_exist:cTF{file_\file_mdfive_hash:n{#3}}{
\tl_set_eq:Nc\video{file_\file_mdfive_hash:n{#3}}
}{
\IfFileExists{#3}{}{\GenericError{}{File~`#3'~not~found}{}{}}
\pbs_pdfobj:nnn{}{fstream}{{}{#3}}
\pbs_pdfobj:nnn{}{dict}{
/Type/Filespec/F~(#3)/UF~(#3)
/EF~<</F~\pbs_pdflastobj:>>
}
\tl_set:Nx\video{\pbs_pdflastobj:}
\tl_gset_eq:cN{file_\file_mdfive_hash:n{#3}}\video
}
%
\pbs_pdfobj:nnn{}{dict}{
/Type/RichMediaInstance/Subtype/Video
/Asset~\video
/Params~<</FlashVars (
source=#3&
skin=SkinOverAllNoFullNoCaption.swf&
skinAutoHide=true&
skinBackgroundColor=0x5F5F5F&
skinBackgroundAlpha=0.75
)>>
}
%
\pbs_pdfobj:nnn{}{dict}{
/Type/RichMediaConfiguration/Subtype/Video
/Instances~[\pbs_pdflastobj:]
}
%
\pbs_pdfobj:nnn{}{dict}{
/Type/RichMediaContent
/Assets~<<
/Names~[(#3)~\video]
>>
/Configurations~[\pbs_pdflastobj:]
}
\tl_set:Nx\rmcontent{\pbs_pdflastobj:}
%
\pbs_pdfobj:nnn{}{dict}{
/Activation~<<
/Condition/\IfBooleanTF{#1}{PV}{XA}
/Presentation~<</Style/Embedded>>
>>
/Deactivation~<</Condition/PI>>
}
%
\hbox_set:Nn\l_tmpa_box{#2}
\tl_set:Nx\l_box_wd_tl{\dim_use:N\box_wd:N\l_tmpa_box}
\tl_set:Nx\l_box_ht_tl{\dim_use:N\box_ht:N\l_tmpa_box}
\tl_set:Nx\l_box_dp_tl{\dim_use:N\box_dp:N\l_tmpa_box}
\pbs_pdfxform:nnnnn{1}{1}{}{}{\l_tmpa_box}
%
\pbs_pdfannot:nnnn{\l_box_wd_tl}{\l_box_ht_tl}{\l_box_dp_tl}{
/Subtype/RichMedia
/BS~<</W~0/S/S>>
/Contents~(embedded~video~file:#3)
/NM~(rma:#3)
/AP~<</N~\pbs_pdflastxform:>>
/RichMediaSettings~\pbs_pdflastobj:
/RichMediaContent~\rmcontent
}
\phantom{#2}
\group_end:
}
\ExplSyntaxOff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{graphicx}
\begin{document}
\begin{frame}
\frametitle{Title}
Some text.
\centering
\embedvideo*{\includegraphics[width=.4\textwidth]{res/thumbnail.png}}{res/video.mp4}
\end{frame}
\end{document}
使用 Foxit 打开生成的 PDF 时,视频播放一次然后停止。此外,如果我切换到另一张幻灯片然后返回到这张幻灯片,视频所在的框会完全变黑。
有人知道用这种方法还是用其他方法可以解决这个问题吗?
我曾考虑过根据视频帧创建动画,但如果可能的话,我宁愿避免这种解决方案。
感谢您的帮助,
答案1
我也对以这种方式循环播放嵌入式视频感兴趣。您media9
在问题中提到了 Flash 变量和包,因此我尝试了以下方法:
\pbs_pdfobj:nnn{}{dict}{
/Type/RichMediaInstance/Subtype/Video
/Asset~\video
/Params~<</FlashVars (
source=#3&
skin=SkinOverAllNoFullNoCaption.swf&
skinAutoHide=true&
skinBackgroundColor=0x5F5F5F&
skinBackgroundAlpha=0.75&
loop=true
)>>
}
在 Okular 中打开编译的 PDF,嵌入的视频现在正在无限循环播放。