๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT/React

[react] React-Player๋ฅผ ํ™œ์šฉํ•˜์—ฌ YouTube ์˜์ƒ์„ ํŽ˜์ด์ง€ ๋ฐฐ๊ฒฝ์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ

by ITyranno 2023. 10. 27.
728x90
๋ฐ˜์‘ํ˜•

 

 

 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„๋ฅผ ํƒ๊ตฌํ•ฉ์‹œ๋‹ค.

 

 

 

React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋™์˜์ƒ ๋ฐ ์˜ค๋””์˜ค๋ฅผ ํ”Œ๋ ˆ์ดํ•˜๋ ค๋ฉด React Player ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ธ”๋กœ๊ทธ ๊ธ€์—์„œ๋Š” React Player๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋™์˜์ƒ์„ ํŽ˜์ด์ง€์— ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•˜๊ณ  ์ œ์–ดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

 

react ๊ตฌํ˜„ ํ™”๋ฉด

 

 

 

1. react-player ์„ค์น˜

 

๋จผ์ €, react-player๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„(Ctrl + J)์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

npm install react-player

 

 

2.  import

 

react-player๋ฅผ ์„ค์น˜ํ•œ ํ›„์—๋Š”, ์›ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์— import ํ•ด์ค๋‹ˆ๋‹ค.

 

import ReactPlayer from 'react-player/youtube'

 

 

3. ์ฝ”๋“œ ์ž‘์„ฑ

 

์›ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 return (
        <div className={style['react']}>
            
            <div className={style['container']}>
                    <ReactPlayer
                        url="https://www.youtube.com/watch?v=์œ ํŠœ๋ธŒ ์˜์ƒ ์ฃผ์†Œ"
                        playing={true}
                        loop={true}
                        muted={true}
                        width="100%"
                        height="100%"
                        style={{ position: 'absolute', top: 0, left: 0, zIndex: -1 }}
                    />
                    
                    </div>
                </div>

    );

 

์œ„์˜ ์ฝ”๋“œ์—์„œ, ReactPlayer์— ์ „๋‹ฌ๋œ props๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

url: ์žฌ์ƒํ•  ์˜์ƒ์˜ URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

playing: ์˜์ƒ์ด ์ž๋™์œผ๋กœ ์žฌ์ƒ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

loop: ์˜์ƒ์ด ๋๋‚˜๋ฉด ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์žฌ์ƒ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

muted: ์˜์ƒ์ด ์Œ์†Œ๊ฑฐ ์ƒํƒœ๋กœ ์žฌ์ƒ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

width, height: ์˜์ƒ์˜ ๋„ˆ๋น„์™€ ๋†’์ด๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ํ™”๋ฉด ์ „์ฒด๋ฅผ ์ฐจ์ง€ํ•˜๋„๋ก '100%'๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

style: ์˜์ƒ์„ ํ™”๋ฉด ๊ฐ€์žฅ ์œ„์— ์œ„์น˜์‹œํ‚ค๊ณ , ์™ผ์ชฝ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

 

 

์œ„ ๊ณผ์ •์„ ํ†ตํ•ด youtube ์˜์ƒ์„ React ๋‚ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

loading