diff options
author | Karl Berry <karl@freefriends.org> | 2012-12-21 23:31:52 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-12-21 23:31:52 +0000 |
commit | 0dbb0a9f652efcecaf1d844cf8177d3b7a29fd03 (patch) | |
tree | 1cd05d55c941dc679049a1d5e0ff84df3980e74a | |
parent | 8bcf0c7ef3cd19666c206271cea9280846b5c7e6 (diff) |
media9 (21dec12)
git-svn-id: svn://tug.org/texlive/trunk@28609 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/latex/media9/ChangeLog | 5 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/media9/files/players/APlayer.mxml | 8 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/media9/files/players/VPlayer.mxml | 18 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/media9/media9.pdf | bin | 1621554 -> 1956021 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/media9/media9.tex | 32 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/media9/media9.sty | 55 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/media9/players/VPlayer.swf | bin | 453394 -> 453572 bytes |
7 files changed, 91 insertions, 27 deletions
diff --git a/Master/texmf-dist/doc/latex/media9/ChangeLog b/Master/texmf-dist/doc/latex/media9/ChangeLog index 35162e3c6f9..cb0a9b70b6a 100644 --- a/Master/texmf-dist/doc/latex/media9/ChangeLog +++ b/Master/texmf-dist/doc/latex/media9/ChangeLog @@ -1,3 +1,8 @@ +2012-12-21 + * v0.18 + * new: playback in floating window; VPlayer.swf can be configured for + stepping mode + 2012-11-26 * v0.17 * updated APlayer.swf with transparent background; poster is now inserted diff --git a/Master/texmf-dist/doc/latex/media9/files/players/APlayer.mxml b/Master/texmf-dist/doc/latex/media9/files/players/APlayer.mxml index f35af9c1696..14847f88406 100644 --- a/Master/texmf-dist/doc/latex/media9/files/players/APlayer.mxml +++ b/Master/texmf-dist/doc/latex/media9/files/players/APlayer.mxml @@ -91,15 +91,15 @@ import flash.events.MouseEvent; private function mouseOvrHnd(e:MouseEvent):void { - mouseIsOver=true; + mouseIsOver=true; fadeEffect.end(); playProgress.alpha=1.0; - } + } private function mouseOutHnd(e:MouseEvent):void { - mouseIsOver=false; + mouseIsOver=false; fadeEffect.play(); - } + } import flash.events.KeyboardEvent; private function keyDnHnd(e:KeyboardEvent):void { diff --git a/Master/texmf-dist/doc/latex/media9/files/players/VPlayer.mxml b/Master/texmf-dist/doc/latex/media9/files/players/VPlayer.mxml index be441e61dce..690b13333ab 100644 --- a/Master/texmf-dist/doc/latex/media9/files/players/VPlayer.mxml +++ b/Master/texmf-dist/doc/latex/media9/files/players/VPlayer.mxml @@ -4,7 +4,7 @@ <!-- a FlashPlayer-10 compatible component for playing --> <!-- FLV and MP4/H.264 video files and streams. --> <!-- --> -<!-- version 20121002 --> +<!-- version 20121221 --> <!-- --> <!-- --> <!-- The free Adobe Flex 4 SDK is required to compile --> @@ -49,6 +49,7 @@ [Bindable] private var autoPlay:Boolean=false; [Bindable] private var loop:Boolean=false; [Bindable] private var vol:Number=0.75; + [Bindable] private var stepping:Boolean=false; private var vidComplete:Boolean=false; private var deltaSeek:Number; private var currentTime:Number; @@ -62,6 +63,7 @@ if(flashVars.loop){loop=(flashVars.loop=='true')} if(flashVars.volume){vol=Number(flashVars.volume)} if(flashVars.scaleMode){scaleMode=flashVars.scaleMode} + if(flashVars.stepping){stepping=flashVars.stepping} } import flash.events.ProgressEvent; @@ -148,6 +150,10 @@ } } + private function onEnterFrame(e:Event):void { + if(stepping&&vidDisp.playing){vidDisp.pause();} + } + private function play():void { if(vidComplete){vidDisp.seek(0);}vidDisp.play(); } @@ -164,6 +170,10 @@ vidDisp.seek(p); } + private function step():void { + if(stepping){stepping=false;}else{stepping=true;} + } + private function rewind():void { vidDisp.seek(0); } @@ -214,9 +224,11 @@ ExternalInterface.addCallback("volume", volume); ExternalInterface.addCallback("mute", mute); ExternalInterface.addCallback("setSource", setSource); + ExternalInterface.addCallback("stepping", step); this.setFocus(); this.addEventListener(KeyboardEvent.KEY_DOWN, keyDnHnd); this.addEventListener(KeyboardEvent.KEY_UP, keyUpHnd); + this.addEventListener(Event.ENTER_FRAME, onEnterFrame); } ]]> </fx:Script> @@ -230,8 +242,8 @@ width="100%" height="100%" scaleMode="{scaleMode}" source="{source}" volume="{vol}" autoPlay="{autoPlay}" autoRewind="false" loop="{loop}" - mouseDown="vidDisp.pause();this.setFocus();" - mouseUp="if(vidComplete) vidDisp.seek(0); vidDisp.play();" + mouseDown="if(stepping){vidDisp.play();}else{vidDisp.pause();}this.setFocus();" + mouseUp="if(vidComplete) vidDisp.seek(0);if(!stepping){vidDisp.play();}" mediaPlayerStateChange="stateChangeHandler(event);" complete="vidComplete=true;" durationChange="if(vidDisp.autoPlay) vidDisp.play(); else vidDisp.seek(0);" diff --git a/Master/texmf-dist/doc/latex/media9/media9.pdf b/Master/texmf-dist/doc/latex/media9/media9.pdf Binary files differindex 7784e3b0e23..adddae8596f 100644 --- a/Master/texmf-dist/doc/latex/media9/media9.pdf +++ b/Master/texmf-dist/doc/latex/media9/media9.pdf diff --git a/Master/texmf-dist/doc/latex/media9/media9.tex b/Master/texmf-dist/doc/latex/media9/media9.tex index 2c6971a7118..a1d796a8726 100644 --- a/Master/texmf-dist/doc/latex/media9/media9.tex +++ b/Master/texmf-dist/doc/latex/media9/media9.tex @@ -149,6 +149,7 @@ draft final activate=... deactivate=... +windowed=... transparent passcontext 3Dplaytype=... @@ -250,6 +251,10 @@ final \end{verbatim} With `\verb+draft+' the media is not embedded. Instead, a box is inserted that has the dimensions of \verb+<poster text>+, subject to the resizing options `\verb+width+', `\verb+height+', `\verb+depth+' and `\verb+scale+'. Option `\verb+final+' does the opposite as it forces the media to be embedded. Both options can be used to reduce compilation time during authoring of a document. To get the most out of them it is recommended to set `\verb+draft+' globally as a package or class option and to set `\verb+final+' locally as a command option of the media annotation that is currently worked on. After the document has been finished, the global `\verb+draft+' option can be removed. \begin{verbatim} +windowed[=false | <width>x<height>] +\end{verbatim} +The media is played in a floating window, instead of being played in an embedded fashion. The floating window size is specified via the optional argument \verb+<width>x<height>+, where the \verb+<width>+ and \verb+<height>+ values are given in pixels (numbers without unit). If the size is not given, a default size is guessed from the annotation size. `\verb+false+' can be set to override a global setting via package options. +\begin{verbatim} transparent \end{verbatim} Indicates whether underlying page content is visible through transparent areas of the embedded media. Default is `\verb+transparent=false+'; media artwork is drawn over an opaque background prior to composition over the page content. @@ -508,7 +513,7 @@ Playback of embedded video files is shown in Fig.~\ref{videoa}. Besides embedded `VPlayer.swf' and `APlayer.swf' expose a number of ActionScript functions to the JavaScript engine of Adobe Reader, allowing for playback control of media through PDF interactive forms and various trigger events. The functions and their calling convention are listed in Table~\ref{AVPlayerMethods}. An example of playing and pausing a video clip and setting the video source via interactive push buttons is given in Fig.~\ref{videoa}. -Sound files and streams in the MP3 format can be played with `APlayer.swf'. Fig.~\ref{radio} contains examples of an audio live stream and a remote MP3 sound file. Instead of being embedded, the player is loaded from a CTAN mirror during runtime because an internet connection is required anyway for streaming the audio. If a local sound file is to be embedded into the PDF this would have to be done in the same way as with the video file in one of the previous examples using the `\verb+addresource+' option. +Sound files and streams in the MP3 format can be played with `APlayer.swf'. Fig.~\ref{radio} contains examples of an audio live stream and a remote MP3 sound file. In one of the sound examples, the player is loaded from a CTAN mirror during runtime because an internet connection is required anyway for streaming the audio. If a local sound file is to be embedded into the PDF this would have to be done in the same way as with the video file in one of the previous examples using the `\verb+addresource+' option. \clearpage \begin{table} @@ -533,6 +538,7 @@ parameter & description\\\hline\hline {\tt source=<file path or URL>} & (required) path to embedded media file (see option `{\tt addresource}'), or URL (http, rtmp) to online media file\\ {\tt autoPlay=true|false} & if {\tt=true}, automatically starts playback after activation (see option `{\tt activation})'\\ {\tt loop=true|false} & if {\tt=true}, media is played in a loop\\ +{\tt stepping=true|false} &(VPlayer.swf only) if {\tt=true}, the video advances by roughly one frame per mouse click\\ {\tt scaleMode=letterbox|none| \phantom{.}\hfill{}stretch|zoom} & default: {\tt stretch}; determines how to scale the video in order to fit into player\\ {\tt volume=<value between 0.0 \phantom{.}\hfill{}and 1.0>} & sets volume of the sound\\ {\tt balance=<value between \phantom{xxxx} \phantom{.}\hfill{}-1.0 and 1.0>} & (APlayer.swf only) sets balance of sound speakers\\\hline @@ -547,6 +553,7 @@ function & argument &description\\\hline\hline {\tt play} & & play media\\ {\tt pause} & & pause media\\ {\tt playPause} & & toggle between play and pause\\ +{\tt stepping} & & (VPlayer.swf only) toggle stepping mode (one frame per click)\\ {\tt setSource} & string & load another media file (path to file, embedded using option `{\tt addresource}', or URL)\\ {\tt seek} & number & move the play location to a time offset from the beginning of the media; argument measured in seconds\\ {\tt rewind} & & rewind media to the beginning (without pausing it)\\ @@ -695,24 +702,17 @@ http://mirrors.ibiblio.org/pub/mirrors/CTAN/macros/latex/contrib/media9/players/ source=http://www.openbsd.org/songs/song49.mp3 &autoPlay=true }, - transparent, - url - ]{\color{blue}\fbox{Listen to OpenBSD 4.9 release song.}}{% - http://mirrors.ibiblio.org/pub/mirrors/CTAN/macros/latex/% - contrib/media9/players/APlayer.swf% - } + transparent + ]{\color{blue}\fbox{Listen to OpenBSD 4.9 release song.}}{APlayer.swf} \end{Verbatim} \makebox[\linewidth]{b)\hfill\includemedia[ flashvars={ source=http://www.openbsd.org/songs/song49.mp3 &autoPlay=true }, - transparent, - url -]{\color{blue}\fbox{Listen to OpenBSD 4.9 release song.}}{% -http://mirrors.ibiblio.org/pub/mirrors/CTAN/macros/latex/contrib/media9/players/APlayer.swf% -}\hfill} -\caption{Example of (a) streamed audio and (b) progressively downloaded MP3. The sound player, APlayer.swf, is loaded from a CTAN mirror upon activation.}\label{radio} + transparent +]{\color{blue}\fbox{Listen to OpenBSD 4.9 release song.}}{APlayer.swf}\hfill} +\caption{Example of (a) streamed audio and (b) progressively downloaded MP3. In (a), the sound player, APlayer.swf, is loaded from a CTAN mirror upon activation.}\label{radio} \end{figure} \clearpage @@ -720,11 +720,9 @@ http://mirrors.ibiblio.org/pub/mirrors/CTAN/macros/latex/contrib/media9/players/ \subsection{Introduction}\label{sec:3Dintro} Adobe Acrobat/Reader 7 was the first version to allow for embedding 3-di\-men\-sion\-al graphic objects, such as CAD models or 3D scientific data, that can be manipulated interactively by the user. U3D was the first supported format and was mainly developed by Right Hemisphere and Adobe. U3D had some deficiencies and was later replaced by the PRC format after Adobe purchased the original developer, the French company `Trade and Technology France'. U3D is still supported, but PRC is preferred as it allows for exact representation of curved surfaces and better compression. Both, U3D and PRC specifications are public~\cite{u3d,prc}. -Currently, the only open-source PRC writing software is Asymptote~\cite{asy}. It is a descriptive 2D and 3D vector graphics language and interpreter which uses \TeX{} to typeset labels and equations, allowing for high quality mathematical figures and technical drawings. An impressive gallery of examples can be found on its Web site. - -MathGL~\cite{mathgl} is an open-source library for the creation of mathematical drawings which can export to the intermediate IDTF format. IDTF can then be converted into U3D using the open-source `Universal 3D Sample Software'~\cite{u3dlib}. +Currently, two open-source software packages are known to export into the PRC file format. The first one is Asymptote~\cite{asy}, which is a descriptive 2D and 3D vector graphics language and interpreter and which uses \TeX{} to typeset labels and equations. It allows for high quality mathematical figures and technical drawings. An impressive gallery of examples can be found on its Web site. The second one is MathGL~\cite{mathgl}, a library for scientific data visualization. It provides interfaces to a number of programming and scripting languages as well as an interpreter for its own command language `MGL'. -MeshLab~\cite{meshlab} is an open-source conversion and processing software for 3D mesh data which can import from and export to a number of file formats. Its U3D export filter is based on~\cite{u3dlib}. +MeshLab~\cite{meshlab} is an open-source conversion and processing software for 3D mesh data which can import from and export to a number of file formats. Its U3D export filter is based on the open-source `Universal 3D Sample Software'~\cite{u3dlib}. There are a few options to \verb+\includemedia+ which define how the 3D object is positioned within the view port of a virtual camera, or conversely, how the virtual camera is positioned and oriented within a coordinate system, called `The World', which bears the 3D object at a fixed position. Fig.~\ref{3dscene} should help to visualize the scenery: The virtual camera is orbiting at a distance of $ROO$ (option `\verb+3Droo+') around the centre of orbit, specified by the position vector $\overrightarrow{COO}$ (option `\verb+3Dcoo+'); $\sphericalangle AAC$ (option `\verb+3Daac+') is the camera's aperture angle. The direction vector $\overrightarrow{C2C}$ (option `\verb+3Dc2c+') is needed to specify the initial camera position. The camera may be given an initial roll angle (option `\verb+3Droll+') around its optical axis $(-1)\cdot\overrightarrow{C2C}$. \begin{figure}[ht] diff --git a/Master/texmf-dist/tex/latex/media9/media9.sty b/Master/texmf-dist/tex/latex/media9/media9.sty index c13b4692fa1..e28fe7df27e 100644 --- a/Master/texmf-dist/tex/latex/media9/media9.sty +++ b/Master/texmf-dist/tex/latex/media9/media9.sty @@ -39,8 +39,8 @@ \RequirePackage{l3keys2e} \RequirePackage{ifpdf} -\def\g@mix@date@tl{2012/11/26} -\def\g@mix@version@tl{0.17} +\def\g@mix@date@tl{2012/12/21} +\def\g@mix@version@tl{0.18} \def\g@mix@liiikerneldate{2012/07/16} \def\g@mix@liiipkgdate{2012/07/16} @@ -104,6 +104,8 @@ \bool_new:N\g_mix_pkgbigfiles_bool \bool_new:N\g_mix_dvipdfmx_bool \bool_new:N\g_mix_pkgdraft_bool +\bool_new:N\g_mix_opt_pkgwindowed_bool +\tl_gset:Nx\g_mix_pkgwindowed_tl{defaultxdefault} \tl_gset:Nn\g_mix_pkgact_tl{/XA} \tl_gset:Nn\g_mix_pkgdeact_tl{/PC} \tl_gset:Nn\g_mix_pkgtransp_tl{false} @@ -159,6 +161,16 @@ passcontext .generate_choices:n = {true,false}, passcontext .default:n = {true}, + windowed .code:n = { + \str_if_eq_p:nnTF{#1}{false}{ + \bool_gset_false:N\g_mix_opt_pkgwindowed_bool + }{ + \bool_gset_true:N\g_mix_opt_pkgwindowed_bool + \tl_gset:Nx\g_mix_pkgwindowed_tl{#1} + } + }, + windowed .default:n = {defaultxdefault}, + %3D specific options 3Dplaytype .choice:, 3Dplaytype / none .code:n = {\tl_gset:Nn\g_mix_pkgplaytpe_tl{None}}, @@ -288,6 +300,8 @@ \tl_gset:Nn\g_mix_dparg_tl{\depth} \tl_gset_eq:NN\g_mix_transp_tl\g_mix_pkgtransp_tl \tl_gset_eq:NN\g_mix_contextclick_tl\g_mix_pkgcontextclick_tl + \bool_gset_eq:NN\g_mix_opt_windowed_bool\g_mix_opt_pkgwindowed_bool + \tl_gset_eq:NN\g_mix_windowed_tl\g_mix_pkgwindowed_tl %3D specific settings \bool_gset_false:N\g_mix_opt_iiidview_bool @@ -1119,6 +1133,10 @@ }{ \tl_gset:Nx\g_mix_playcnt_tl{\int_eval:n{\g_mix_playcnt_tl*2}} } + %determine floating window size + \bool_if:NT\g_mix_opt_windowed_bool{ + \exp_after:wN\mix_parse_windowedarg:w\g_mix_windowed_tl\q_stop + } \mix_pdfobj:nnn{}{dict}{ /Activation~<< /Condition\g_mix_act_tl @@ -1139,7 +1157,17 @@ }{/View~\l_mix_dfltview_tl} /Presentation~<< /Transparent~\g_mix_transp_tl - /Style/Embedded + \bool_if:NTF\g_mix_opt_windowed_bool{ + /Style/Windowed + /Window~<< + /Width~<</Default~\tl_mix_fltwd>> + /Height~<</Default~\tl_mix_fltht>> + /Position~<</HAlign/Near/VAlign/Near>> + >> + >> + }{ + /Style/Embedded + } \bool_if:NTF\g_mix_iiid_bool{ /Toolbar~\g_mix_tools_tl /NavigationPane~\g_mix_nav_tl @@ -1350,6 +1378,16 @@ } } +\cs_new:Npn\mix_parse_windowedarg:w#1x#2\q_stop{ + \str_if_eq:nnTF{#1}{default}{ + \tl_gset:Nx\tl_mix_fltwd{\fp_eval:n{1.522*\__dim_strip_bp:n{\l_mix_wd_tl}}} + \tl_gset:Nx\tl_mix_fltht{\fp_eval:n{1.522*\__dim_strip_bp:n{\l_mix_tt_tl}}} + }{ + \tl_gset:Nn\tl_mix_fltwd{#1} + \tl_gset:Nn\tl_mix_fltht{#2} + } +} + %document command options \msg_set:nnnn{media9}{unknown~option}{ @@ -1375,6 +1413,7 @@ \bool_new:N\g_mix_opt_iiidortho_bool \bool_new:N\l_mix_ciiw_bool \bool_new:N\l_mix_iiidortho_bool +\bool_new:N\g_mix_opt_windowed_bool \seq_new:N\g_mix_res_seq \seq_new:N\g_mix_script_seq @@ -1459,6 +1498,16 @@ passcontext .generate_choices:n = {true,false}, passcontext .default:n = {true}, + windowed .code:n = { + \str_if_eq:nnTF{#1}{false}{ + \bool_gset_false:N\g_mix_opt_windowed_bool + }{ + \bool_gset_true:N\g_mix_opt_windowed_bool + \tl_gset:Nx\g_mix_windowed_tl{#1} + } + }, + windowed .default:n = {defaultxdefault}, + %3D specific options 3Dplaytype .choice:, 3Dplaytype / none .code:n = {\tl_gset:Nn\g_mix_playtpe_tl{None}}, diff --git a/Master/texmf-dist/tex/latex/media9/players/VPlayer.swf b/Master/texmf-dist/tex/latex/media9/players/VPlayer.swf Binary files differindex cb0f3bf16ee..f6e8ea0eb21 100644 --- a/Master/texmf-dist/tex/latex/media9/players/VPlayer.swf +++ b/Master/texmf-dist/tex/latex/media9/players/VPlayer.swf |