Media Capture and Streams API (๋ฏธ๋์ด ์คํธ๋ฆผ)
Media Streams API, ์งง๊ฒ๋ MediaStream API๋ผ๊ณ ๋ถ๋ฆฌ๋ Media Capture and Streams API๋ ์ค๋์ค์ ๋น๋์ค ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ์ ์ง์ํ๋ WebRTC ๊ด๋ จ API ์ ๋๋ค. ์ด API๋ ๋ฏธ๋์ด ์คํธ๋ฆผ๊ณผ ์คํธ๋ฆผ์ ๊ตฌ์ฑํ๋ ํธ๋, ๋ฐ์ดํฐ ํ์๊ณผ ๊ด๋ จ๋ ์ ํ์ธ์, ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์ฌ์ฉํ ๋์ ์ฑ๊ณต๊ณผ ์ค๋ฅ ์ฝ๋ฐฑ, ๊ทธ๋ฆฌ๊ณ ์ด ๊ณผ์ ์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ์ ๋ํ ์ธํฐํ์ด์ค ๋ฐ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ฐ๋ ๋ฐ ์ฌ์ฉ๋ฒ
์ด API๋ ์ค๋์ค ํน์ ๋น๋์ค์ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ MediaStream ๊ฐ์ฒด ์กฐ์์ ๊ธฐ๋ฐํฉ๋๋ค.
MediaStream์ 0๊ฐ ์ด์์ MediaStreamTrack ๊ฐ์ฒด๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ์ ๋ค์ํ ์ค๋์ค์ ๋น๋์ค ํธ๋์ ๋ํ๋
๋๋ค. ๊ฐ๊ฐ์ MediaStreamTrack์ ํ๋ ์ด์์ ์ฑ๋์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ฑ๋์, ์ค๋์ค๋ก ์๋ฅผ ๋ค๋ฉด ์คํ
๋ ์ค ์ค๋์ค ํธ๋์์์ "์ผ์ชฝ"๊ณผ "์ค๋ฅธ์ชฝ"์ฒ๋ผ, ๋ฏธ๋์ด ์คํธ๋ฆผ์ ์ ์ผ ์์ ๋จ์๋ฅผ ๋ํ๋
๋๋ค.
MediaStream ๊ฐ์ฒด๋ ํ๋์ ์
๋ ฅ๊ณผ ํ๋์ ์ถ๋ ฅ์ ๊ฐ์ง๋๋ค. getUserMedia()๋ก ์์ฑํ MediaStream ๊ฐ์ฒด๋ "๋ก์ปฌ" ๋ฏธ๋์ด ์คํธ๋ฆผ์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ์ฌ์ฉ์์ ์นด๋ฉ๋ผ์ ๋ง์ดํฌ ์ค ํ๋๋ฅผ ์
๋ ฅ ์ถ์ฒ๋ก ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ฉด <video>, <audio>์ ๊ฐ์ ๋ฏธ๋์ด ์์, ๋คํธ์ํฌ์์ ๋ค์ด์ค๋ ์คํธ๋ฆผ, WebRTC RTCPeerConnection API๋ก ํ๋ํ ์คํธ๋ฆผ, Web Audio API MediaStreamAudioSourceNode๋ก ์์ฑํ ์คํธ๋ฆผ ๋ฑ์ ๋น ๋ก์ปฌ MediaStream์ด๋ผ๊ณ ํฉ๋๋ค.
MediaStream ๊ฐ์ฒด์ ์ถ๋ ฅ์ ์๋น์(์ปจ์๋จธ)๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค. ์๋น์๋ <video>, <audio>์ ๊ฐ์ ๋ฏธ๋์ด ์์, WebRTC RTCPeerConnection API, Web Audio API MediaStreamAudioSourceNode๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
์ธํฐํ์ด์ค
์๋์ ์ฐธ๊ณ ๋ฌธ์์์๋ Media Capture and Streams API๋ฅผ ๊ตฌ์ฑํ๋ ์ธํฐํ์ด์ค์ ๋ํ ๊ธฐ์ด์ ์ธ ์ง์์ ์ฐพ์ ์ ์์ต๋๋ค.
CanvasCaptureMediaStreamTrackInputDeviceInfoMediaDeviceKindMediaDeviceInfoMediaDevicesMediaStreamMediaStreamEventMediaStreamTrackMediaStreamTrackEventMediaTrackCapabilitiesMediaTrackConstraintsMediaTrackSettingsMediaTrackSupportedConstraintsNavigatorUserMediaNavigatorUserMediaErrorOverconstrainedErrorURL
Media Capture and Streams API์ ์ด๊ธฐ ๋ช
์ธ๋ MediaStreamTrack์ ๊ธฐ๋ฐํ ๋ณ๋์ AudioStreamTrack๊ณผ VideoStreamTrack ์ธํฐํ์ด์ค๋ฅผ ํฌํจํ์ผ๋ฉฐ, ๊ฐ์ ์ค๋์ค์ ๋น๋์ค ์คํธ๋ฆผ์ ๋ฐ๋ก ๋ํ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฐ ๊ตฌ๋ถ์ ๋ ์ด์ ์กด์ฌํ์ง ์์ผ๋ฉฐ, ๋ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋๋ MediaStreamTrack์ ์ง์ ์ฌ์ฉํ๋๋ก ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค.