넷플릭스 클론 사이트 배너에 트레일러 영상을 달았습니다.
react-youtube는 유튜브에서 제공하고 있는 IFrame Player API를 편하게 쓸 수 있도록 컴포넌트 형태로 만든 것입니다.
이를 이용해서 동영상을 재생 혹은 일시정지하거나 이벤트 리스너를 추가할 수 있습니다.
$ npm install react-youtube
import YouTube from 'react-youtube';
<YouTube
videoId={string} // defaults -> null
id={string} // defaults -> null
className={string} // defaults -> null
containerClassName={string} // defaults -> ''
title={string} // defaults -> null
opts={obj} // defaults -> {}
onReady={func} // defaults -> noop
onPlay={func} // defaults -> noop
onPause={func} // defaults -> noop
onEnd={func} // defaults -> noop
onError={func} // defaults -> noop
onStateChange={func} // defaults -> noop
onPlaybackRateChange={func} // defaults -> noop
onPlaybackQualityChange={func} // defaults -> noop
/>
<YouTube
//videoId : https://www.youtube.com/watch?v={videoId} 유튜브 링크의 끝부분에 있는 고유한 아이디
videoId={video.key}
//opts(옵션들): 플레이어의 크기나 다양한 플레이어 매개 변수를 사용할 수 있음.
//밑에서 더 설명하겠습니다.
opts={{
width: "560",
height: "315",
playerVars: {
autoplay: 1, //자동재생 O
rel: 0, //관련 동영상 표시하지 않음 (근데 별로 쓸모 없는듯..)
modestbranding: 1, // 컨트롤 바에 youtube 로고를 표시하지 않음
},
}}
//이벤트 리스너
onEnd={(e)=>{e.target.stopVideo(0);}}
/>
opts
에 들어가는 playerVars
은 매개변수입니다.😢opts 관련해서 주의!
opts
prop에 변수를 할당하는 경우 No overload matches this call
타입스크립트 오류가 발생하는 경우가 있습니다.
깃헙 페이지에 가보니 다른 분들도 비슷한 오류를 겪고 있었고, 컴포넌트에 인라인으로 작성하니 오류가 발생하지 않았습니다.
onEnd
는 영상이 끝날 때 발생하는 이벤트입니다.player.stopVideo()
: 현재 동영상의 로드를 중지하고 취소합니다.Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute
오류가 발생합니다.react-youtube - npm https://www.npmjs.com/package/react-youtube
react-youtube github - https://github.com/tjallingt/react-youtube
IFrame Player API - https://developers.google.com/youtube/iframe_api_reference
안녕하세요!!! player.stopVideo() 여기서 player가 어디서 오는 player인가요? api 함수들 쓰고 싶은데 어떻게 써야할지 몰라서 못 쓰고 있어요ㅠㅠ