Search

컨트롤러 (1)

1)
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vimeo Controller</title> <link rel="stylesheet" href="styles.css"> <script src="https://player.vimeo.com/api/player.js"></script> </head> <body> <div class="video-container"> <div class="hell" oncontextmenu="return false;"></div> <iframe id="vimeo-player" src="https://player.vimeo.com/video/1023813913?title=0&amp;byline=0&amp;portrait=0&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479" width="640" height="360" frameborder="0" allowfullscreen></iframe> </div> <div class="controls"> <button id="play-btn">재생</button> <button id="pause-btn">일시 정지</button> <button id="stop-btn">정지</button> <button id="pip-btn">화면 속 화면</button> <button id="fullscreen-btn">전체 화면</button> </div> <script src="script.js"></script> </body> </html> <style> body { font-family: Arial, sans-serif; display: flex; flex-direction: column; align-items: center; } .video-container { margin-bottom: 20px; } .controls { display: flex; gap: 10px; } </style> <script> const iframe = document.getElementById('vimeo-player'); const player = new Vimeo.Player(iframe); // 비디오 재생 function playVideo() { player.play().then(() => { console.log('재생 중...'); }).catch(error => { console.error('재생 중 오류 발생:', error); }); } // 비디오 일시 정지 function pauseVideo() { player.pause().then(() => { console.log('일시 정지됨.'); }).catch(error => { console.error('일시 정지 중 오류 발생:', error); }); } // 비디오 정지 (일시 정지 후 재생 위치를 0으로 설정) function stopVideo() { player.pause().then(() => { return player.setCurrentTime(0); }).then(() => { console.log('비디오 정지됨.'); }).catch(error => { console.error('정지 중 오류 발생:', error); }); } // 화면 속 화면 모드 async function togglePip() { if (document.pictureInPictureElement) { await document.exitPictureInPicture(); console.log('화면 속 화면 종료됨.'); } else { try { await player.requestPictureInPicture(); console.log('화면 속 화면 활성화됨.'); } catch (error) { console.error('화면 속 화면 요청 오류 발생:', error); } } } // 전체 화면 모드 async function toggleFullscreen() { try { if (document.fullscreenElement) { await document.exitFullscreen(); console.log('전체 화면 종료됨.'); } else { await iframe.requestFullscreen(); console.log('전체 화면 활성화됨.'); } } catch (error) { console.error('전체 화면 오류 발생:', error); } } // 버튼 이벤트 리스너 document.getElementById('play-btn').addEventListener('click', playVideo); document.getElementById('pause-btn').addEventListener('click', pauseVideo); document.getElementById('stop-btn').addEventListener('click', stopVideo); document.getElementById('pip-btn').addEventListener('click', togglePip); document.getElementById('fullscreen-btn').addEventListener('click', toggleFullscreen); // 페이지가 로드되면 비디오를 자동으로 재생 window.onload = () => { playVideo(); // 자동 재생 // 10초 후 일시 정지 setTimeout(pauseVideo, 10000); // 10초 후 일시 정지 // 15초 후 재생 setTimeout(playVideo, 15000); // 15초 후 다시 재생 // 20초 후 정지 setTimeout(stopVideo, 20000); // 20초 후 정지 }; </script> <style> /* Parent Wrapper Element */ figure { position: relative; width: 320px; /* 비디오의 너비 */ height: 180px; /* 비디오의 높이 */ margin: 0 auto; /* 중앙 정렬 */ } /* Sibling Overlay Element */ .hell { position: absolute; width: 100%; height: 100%; top: 0; left: 0; z-index: 2; /* figcaption의 z-index 설정 */ pointer-events: none; /* 클릭 이벤트 비활성화 */ } /* 비디오 iframe 스타일 */ vimeo-player { position: absolute; width: 100%; height: 100%; top: 0; left: 0; border: none; /* 테두리 없애기 */ z-index: 1; /* iframe의 z-index 설정 */ } /* 컨트롤 버튼 스타일 */ .controls { display: flex; justify-content: center; /* 버튼 중앙 정렬 */ gap: 10px; /* 버튼 사이의 간격 */ margin-top: 10px; /* 상단 여백 */ } .control-btn { padding: 5px 10px; background: rgba(255, 255, 255, 0.8); /* 버튼 배경색 */ border: none; border-radius: 5px; cursor: pointer; } </style>
HTML
복사