
안녕하세요. 저는 비디오 시간을 정확한 지점으로 설정하는 버튼을 얻으려고 합니다. 아래 나열된 코드는 지금까지 내가 만든 것이지만 작동하지 않습니다. 내 생각엔 document.getElementById를 얻을 수 없기 때문인 것 같아요. 누구든지 이 문제를 해결하는 방법을 알고 있습니까?
\documentclass{article}
\usepackage[pdftex]{hyperref}
\usepackage[pdftex]{insdljs}
\usepackage{media9}
\begin{insDLJS}{mydljs}{some comment}
function stop(){
var vid = document.getElementById("bunny.mp4");
vid.currentTime=5;
}
\end{insDLJS}
\begin{document}
\includemedia[width=0.6\linewidth,height=0.6\linewidth,activate=pageopen,
passcontext,
transparent,
addresource=bunny.mp4,
flashvars={source=bunny.mp4}
]{}{VPlayer.swf}
\begin{Form}
\PushButton[onclick={stop();}]{5 sec}\\
\TextField[name=somefield, width=4em]{Any way to hide e.g. this text?}
\end{Form}
\end{document}ode here
답변1
자바스크립트는~ 아니다필수의.
명령 을 사용하여 추가 제어 버튼을 삽입할 수 있습니다 \mediabutton
. 살펴보세요media9
수동예를 들어.
비디오를 충분히 정확하게 탐색할 수 없는 경우 더 많은 수의 키 프레임을 사용하여 비디오를 다시 인코딩해야 할 수도 있습니다.
예를 들어 매초마다 동일한 값을 갖는 ffmpeg
옵션 -g ...
및 (프레임 속도)를 사용하는 키 프레임은 다음과 같습니다.-r ...
ffmpeg -i video-in.mp4 -c:v libx264 -profile:v high -pix_fmt yuv420p -g 30 -r 30 video-out.mp4
업데이트: 뒷면의 예example-movie.mp4
패키지에 포함된 비디오 파일 포함mwe
, 위에 나열된 명령줄을 사용하여 매초마다 키프레임으로 다시 인코딩됩니다.
스트리밍 비디오의 예:
\documentclass{article}
\usepackage{media9}
\parindent=0pt
\begin{document}
\includemedia[
label=videoexample,
width=16em,height=9em,
activate=pageopen,
passcontext,
transparent,
flashvars={source=https://ia800501.us.archive.org/10/items/BigBuckBunny_310/big_buck_bunny_640_512kb.mp4}
]{}{VPlayer.swf}
\mediabutton[
mediacommand=videoexample:play[(25)],
mediacommand=videoexample:pause
]{\fbox{25~s}}
\mediabutton[
mediacommand=videoexample:play[(50)],
mediacommand=videoexample:pause
]{\fbox{50~s}}
\mediabutton[
mediacommand=videoexample:play[(150)],
mediacommand=videoexample:pause
]{\fbox{150~s}}
\end{document}