Build 562131stable
Module 90721
1,577 characters · in b57e04c8d22dec01.jsDependencies
Source Raw
function(e,t,n){n.d(t,{A:()=>a});var r=n(64700);let l="requestVideoFrameCallback"in HTMLVideoElement.prototype;function a(e){let{videoRef:t,canvasRef:n,enabled:a,canvasWidth:i=10,canvasHeight:s=6}=e;r.useEffect(()=>{if(!a)return;let e=t.current,r=n.current;if(null==e||null==r)return;r.width=i,r.height=s;let u=r.getContext("2d");if(null==u)return;let o=!1;function c(){o||e.readyState<2||u.drawImage(e,0,0,i,s)}if(l){let t;function d(){o||(c(),t=e.requestVideoFrameCallback(d))}function m(){t=e.requestVideoFrameCallback(d)}function h(){e.cancelVideoFrameCallback(t)}return e.addEventListener("play",m),e.addEventListener("pause",h),e.addEventListener("ended",h),e.addEventListener("seeked",c),e.addEventListener("loadeddata",c),e.paused?e.readyState>=2&&c():t=e.requestVideoFrameCallback(d),()=>{o=!0,e.cancelVideoFrameCallback(t),e.removeEventListener("play",m),e.removeEventListener("pause",h),e.removeEventListener("ended",h),e.removeEventListener("seeked",c),e.removeEventListener("loadeddata",c)}}{let t;function f(){o||(c(),t=requestAnimationFrame(f))}function p(){t=requestAnimationFrame(f)}function v(){cancelAnimationFrame(t)}return e.addEventListener("play",p),e.addEventListener("pause",v),e.addEventListener("ended",v),e.addEventListener("seeked",c),e.addEventListener("loadeddata",c),e.paused?e.readyState>=2&&c():t=requestAnimationFrame(f),()=>{o=!0,cancelAnimationFrame(t),e.removeEventListener("play",p),e.removeEventListener("pause",v),e.removeEventListener("ended",v),e.removeEventListener("seeked",c),e.removeEventListener("loadeddata",c)}}},[t,n,a,i,s])}}