728x90
웹 개발 하면서 비디오 태그의 상태에 따라 작동해야 하는 기능을 만들때, 항상 고민 했습니다.
이번 글은
1. 동영상이 멈췄을 때
2. 동영상이 재생 되었을 때
3. 동영상 재생 중
을 감지하는 기능입니다.
전채 코드
import "./styles.css";
import React, {useState, useEffect,useRef,} from 'react';
export default function App() {
let videoTag = document.getElementById("videoTag1");
let VideoState = useRef(true);
let onLoadFile = (e) => {
let file = e.target.files;
videoTag = document.getElementById("videoTag1");
let videourl = URL.createObjectURL(file[0]);
videoTag.setAttribute("src", videourl);
videoTag.addEventListener( "loadedmetadata", function () {
videoTag.ontimeupdate = function() {
console.log("재생중: "+ videoTag.currentTime);
};
videoTag.onplaying = function() {
console.log("재생됨");
VideoState.current = true;
};
videoTag.onpause= function() {
console.log("정지됨");
VideoState.current = false;
};
videoTag.play();
}, false);
}
let VideoOnOff = (e) => {
if(VideoState.current === true){
videoTag.pause();
}else{
videoTag.play();
}
}
return (
<div className="App">
<h1>Video 태그 리스너</h1>
<input type="file" id="videoTag" onChange={onLoadFile} />
<video id="videoTag1" width={300} onClick={VideoOnOff} ></video>
</div>
);
}
'React' 카테고리의 다른 글
[React] react-router-dom의 라우터와 Link 기능 활용하기 (0) | 2023.09.09 |
---|---|
[React]컴포넌트 생성 및 재사용하기 (0) | 2023.07.20 |
[React] 영상 썸네일 만들기 (0) | 2023.02.10 |
[리액트] PC 웹캠으로 사진 촬영 (2) | 2023.01.26 |
[리액트] map 반복문으로 만든 자식 컴포넌트의 함수 작동 (useRef 배열) (0) | 2023.01.12 |