使用 \visible 和 media9 嵌入视频

使用 \visible 和 media9 嵌入视频

我目前正在切换到 media9 以将视频包含在 beamer 中。我遇到了一个与可见性选项有关的问题。我想将两个视频与列表一起放在一个框架上。第一个视频在页面打开时与一些项目一起开始,而第二个视频在我突出显示项目的第二部分时显示并开始。这是我的代码,希望能找到解决方案:

\begin{frame}{Frame example}
    \begin{columns}
        \begin{column}{5.5cm}
            \begin{itemize}
                \item Blabla
                \item Blabla
                \item<2-> Bloblo
                \item<2-> Bloblo
            \end{itemize}
        \end{column}
        \begin{column}{4.5cm}
            \begin{figure}{
                \includemedia[
                    width=\columnwidth,height=2.8125cm,
                    activate=pageopen,
                    addresource=blabla_video.mp4,
                    flashvars={
                    source=blabla_video.mp4
                    &loop=true
                    &autoPlay=true
                    &scaleMode=letterbox
                    }
                    ]{}{VPlayer.swf}
                \caption{Blabla}}
            \end{figure}
            \visible<2->{
            \begin{figure}{         
                \includemedia[
                    width=\columnwidth,height=2.8125cm,
                    activate=pagevisible,
                    addresource=bloblo_video.mp4,
                    flashvars={
                    source=bloblo_video.mp4
                    &autoPlay=true
                    &loop=true
                    &scaleMode=letterbox
                    },
                    transparent
                    ]{}{VPlayer.swf}
                \caption{Bloblo}}
            \end{figure}}
        \end{column}
    \end{columns}
\end{frame}

我还注意到 Adob​​e Reader 使用 media9 读取视频的速度比使用 movie15 读取视频的速度要慢得多。这是否与我的配置有关,还是我缺少某种编解码器?这是否与出现有关检测到签名字段的警告有关?

我正在运行 MikTex 2.9,使用 pdflatex 进行编译并使用 Adob​​e Reader 11.0.3 打开 pdf

我希望你们能给出答案...

答案1

media9不太适合与 Beamer 叠加一起使用。后者每帧生成多个 PDF 页面,并可能重新插入视频。

具体来说,\visible在那些不显示其内容的覆盖层上保留空间。为了获得所需空白的尺寸,将参数\visible排版到某个用于测量的框中。媒体文件显示在所谓的 PDF 注释中,这些注释不属于页面内容,而是位于页面上方的单独层中。它们不可避免地被添加到页面资源中,因此即使在它们应该不可见的覆盖层中也会显示出来。

不过,有一个技巧可以让它发挥作用。在\visible参数中,我们放置一个\rule与视频尺寸相同的框,并将其用于应该隐藏视频的叠加层中:

\documentclass{beamer}
\usepackage{media9}
\begin{document}

\begin{frame}{Frame example}
  \begin{columns}
    \begin{column}{5.5cm}
      \begin{itemize}
        \item Blabla
        \item Blabla
        \item<2-> Bloblo
        \item<2-> Bloblo
      \end{itemize}
    \end{column}
    \begin{column}{4.5cm}
      \begin{figure}
        \includemedia[
          width=\columnwidth,height=2.8125cm,
          activate=pageopen,
          addresource=blabla.mp4,
          flashvars={
            source=blabla.mp4
            &loop=true
            &autoPlay=true
            &scaleMode=letterbox
          }
        ]{}{VPlayer.swf}
        \caption{Blabla}
      \end{figure}
      \visible<2->{
      \begin{figure}
        \only<1>{\rule{\columnwidth}{2.8125cm}}%
        \only<2->{%
          \includemedia[
            width=\columnwidth,height=2.8125cm,
            activate=pagevisible,
            addresource=bloblo.mp4,
            flashvars={
              source=bloblo.mp4
              &autoPlay=true
              &loop=true
              &scaleMode=letterbox
            }
          ]{}{VPlayer.swf}%
        }  
        \caption{Bloblo}
      \end{figure}}
    \end{column}
  \end{columns}
\end{frame}

\end{document}

请注意,当传递到第二个覆盖层时,第一个视频会再次从 PDF 中提取、解压、加载和启动,这可能会导致一些延迟。这是无法避免的。可以movie15使用 JavaScript 将正在播放的视频从一个页面“拉”到下一个页面。这很不靠谱,但不知何故却有效。media9这种可能性已经不复存在。

相关内容