\documentclass{article} % % the driver line is not necessary if you % have aebpro.cfg configured to your driver. % \usepackage[% web={extended,tight}, eforms={req=2020/09/15},graphicxsp={showembeds} ]{aeb_pro} \usepackage{rmannot} %\previewOn\pmpvOn \AcroVer[win=64]{Beta} \margins{.25in}{.5in}{24pt}{.25in} % left,right,top, bottom \screensize{5in}{5.5in} % height, width \DeclareDocInfo { title=The \textsf{rmannot} Package\texorpdfstring{\\[1ex]}{: }Hidden MP4 Movies, author=D. P. Story, university=Acro\negthinspace\TeX.Net, email=dpstory@acrotex.net, subject={Demo of the rmannot package, hidden MP4 movies}, keywords={Adobe Acrobat, JavaScript, ActionScript}, talksite=\url{http://www.acrotex.net}, talkdate={Aug 2020}, copyrightStatus=True, copyrightNotice={Copyright (C) 2008--\the\year, D. P. Story}, copyrightInfoURL=http://www.acrotex.net } \talkdateLabel{Published:} \def\AcroTeX{Acro\!\TeX} \let\uif\textsf \let\app\textsf \newcommand{\myRMFiles}{% C:/Users/Public/Documents/My TeX Files/% tex/latex/aeb/aebpro/rmannot/RMfiles} \saveNamedPath{horse1}{\myRMFiles/horse.mp4} \makePoster[hiresbb]{aebmovie_poster}{aebmovie_poster} %\makePoster[hiresbb]{horse1_poster}{horse1_poster} \parindent=0pt\parskip6pt\pagestyle{empty} \begin{insDLJS}{invrma}{Invisible RMA Support} var playPressed=new Object; var appFocusRect=app.focusRect; function playHiddenRMA(coverFld) { if (app.viewerVersion >= 20 ) { var f=this.getField(coverFld); if (f.display==display.hidden||app.focusRect) { playPressed[coverFld]=false; f.readonly=true; f.display=display.visible; app.focusRect=false; event.target.buttonSetCaption("Play"); event.target.userName="Press Play, then double-click RMA annot"; } else { playPressed[coverFld]=true; f.readonly=false; app.focusRect=true; f.setFocus(); event.target.buttonSetCaption("Read"); event.target.userName="Press to continue reading"; } } else { var rma = this.getAnnotsRichMedia(this.pageNum)[0]; if (event.shift) rma.activated=false; else { rma.activated=true; rma.callAS("multimedia_play"); } } } function coverMU() { if (app.viewerVersion >= 20 ) { var f=event.target; var fname=event.target.name; if ( (f.display==display.visible) && playPressed[fname]) f.display=display.hidden; } } \end{insDLJS} \setlength{\marginparsep}{4pt} \begin{document} \maketitle \def\playBtn{\pushButton[\TU{Click to play, shift-click to hide the movie}\CA{Play} \AAmouseenter{if(app.viewerVersion >= 20) event.target.userName="Press Play, then double-click RMA annot";} \AAmouseup{playHiddenRMA("coverRMA")}]{playRMA}{\widthof{\,Read\,}}{11bp}} \noindent At the time of writing this document, \app{Acrobat DC} and \app{Adobe Reader DC} (\app{AA/AR}) no longer support JavaScript control over RMA. To have a \emph{hidden RMA} that plays on the page it is necessary to play some tricks: \vadjust{\makebox[\linewidth][c] {% \raisebox{-\height}[0pt][\depth]{\makebox[0pt][l] {% \pushButton[\Ff\FfReadOnly\autoCenter{n}\S{S}\BG{}\BC{}\H{N} \AApageopen{app.focusRect=false;} \AApageclose{app.focusRect=appFocusRect;} \AAmouseup{coverMU()}\width{.75\linewidth}]{coverRMA}{320bp}{240bp} }% \rmAnnot[invisible,width=.75\linewidth,enabled=onclick, deactivated=pageclose]{320bp}{240bp}{horse1}% }% }\smash{\makebox[0pt][l]{\raisebox{-\height}{\playBtn}}}}% \begin{enumerate} \item Click or tap the \uif{Play} control \item Go to the center of the page and double click or double tap \item After the video plays, dismiss the video by right-clicking the video and choosing \uif{Disable Content}. Then press the \uif{Read} again. \end{enumerate} This file demonstrates how to place a RMA (MP4 in this case) on the page without taking up any ``\TeX'' space. Because we have not JavaScript control over RMA anymore, we must require the user to first press the ``\uif{Play}'' button then double-click on the region outline by the dotted line. Once the media has finished playing (or before), dismiss the player by right clicking the annotation and choosing \uif{Disable Content}. After that, the user should then click the ``\uif{Read}'' button. This restores the page so that the user can read the content without accidentally starting the video again. We place a \setLink[\A{\JS{app.alert("You can interact with content.")}}]{link} to demonstrate you can interact with the page. \end{document} \url{htt://www.acrotex.net/blog} \lipsum[1]