当 \movie 调用中包含“海报”时,Beamer 动画无法显示动画的第一帧

当 \movie 调用中包含“海报”时,Beamer 动画无法显示动画的第一帧

这是 SE413129 的后续问题。如投影仪指南第 134 页所述,在投影仪框架中包含带有“海报”选项的电影不会导致显示第 1 帧。显示了一些(不可预测的)帧。单击海报后,动画将按预期播放。在 Debian Buster 下开发的 MWE:

以下 Octave 脚本制作了一系列图像,显示 100 帧中每帧的帧号:

set(gcf,"position",[20,100,800,450]);
for kt=1:100
  clf
  text(0.,0.,strcat(int2str(kt)));
  axis([-1 1 -1 1])
  drawnow
  fname=strcat('./jpg/img',num2str(kt,"%04i"),'.jpg');
  eval(['print -djpeg "-S800,450" ' fname]);
end

这些图像被拼接成动画,

ffmpeg -f image2 -i img%04d.jpg -r 24  anim.mov

可以使用 ffplay anim.mov 观看动画

最简单的投影仪演示如下:

\documentclass{beamer}
\setbeamertemplate{navigation symbols}{}
\usepackage{multimedia}
\usepackage{graphicx}
\usetheme{Singapore}  % name of theme substituted here
\newcommand{\degree}{\ensuremath{^\circ}}
\begin{document}
%% example frame with animation
\begin{frame}
\frametitle{Numbers}
\movie[height = 0.6 \textwidth,width = 1.0\textwidth,poster]{}{anim.mov}
\end{frame}
\end{document}

这是用

pdflatex anim.tex

当显示生成的 pdf 时(使用 okular 或 evince),显示的帧从来不是第 1 帧,而是其他帧。单击显示的帧后,动画(从第 1 帧开始)将按预期运行。

答案1

作为一种解决方法,你可以使用以下方法手动设置应显示为预览的图像

\movie[height = 0.6 \textwidth,width = 1.0\textwidth]{\includegraphics[width=\textwidth]{img1}}{anim.mov}

(替换img1为第一张图片的名称)

缺点:从评论中得知克林顿·温特点击后到电影开始之间会出现短暂的黑屏


作为黑屏的替代,您可以使用media9包 - 这将显示白屏:)

\documentclass{beamer}
\setbeamertemplate{navigation symbols}{}
\usepackage{media9}
%\usepackage{graphicx}
\usetheme{Singapore}  % name of theme substituted here
\newcommand{\degree}{\ensuremath{^\circ}}
\begin{document}
%% example frame with animation
\begin{frame}
\frametitle{Numbers}
%\movie[height = 0.6 \textwidth,width = 1.0\textwidth]{\includegraphics[width=\textwidth]{img0001}}{anim.mov}



\includemedia[
  width=\linewidth,
  totalheight=0.6 \textwidth,
%  activate=pageopen,
  passcontext,  %show VPlayer's right-click menu
  addresource=anim.mov,
  flashvars={
    %important: same path as in `addresource'
    source=anim.mov
  }
]{\includegraphics[width=\textwidth]{img0001}}{VPlayer.swf}

\end{frame}
\end{document}

相关内容