์๋ก์ด ๊ฒ์ ๊ฟ๊พธ๋ ๊ฐ๋ฐ์ ์ ๋๋ค.
Courses
Reviews
Posts
Q&A
์ค๋์ค Input -> Speaker ์ถ๋ ฅ Noise
์๋ ํ์ธ์.์ ์ ๊ฐ์์ ๊ด์ฌ์ ๋ณด์ฌ์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๊ฐ์ข ํํฐ๋ ์ฌ์ฉํ์๊ณ , ์ค๋์ค ์ฌ์ ์์๋ ์ง์ ๋ฒํผ๋ฅผ ์ฌ์ฉํ์๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ค์.์ ์ ๊ฐ์์๋ Raw ๋ฏธ๋์ด ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ๋ณด๋ค๋, ๋ฏธ๋์ด๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ๊ณผ ํจ๊ป MediaStream ํด๋์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ด๋ จ ํด๋์ค ํน์ ์ธํฐํ์ด์ค์ ๋ฉ์๋๋ฅผ ์๊ฐํด ๋๊ฐ๋ ๊ฐ์๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.๊ฐ์ ๋ด์์๋ ํด๋น ๋ฌธ์ ์ ๋ต์ ์ฐพ๊ธฐ์๋ ์๋ง ๊ธฐ์ด์ ์ธ ๋ด์ฉ์ด๋ผ๊ณ ์ฌ๊ธฐ์ค ๊ฐ๋ฅ์ฑ์ด ์ปค ๋ณด์ ๋๋ค. ๋ค๋ง, ๊ฐ์ ๋ด์ฉ๊ณผ ๋ณ๊ฐ๋ก ๋ณด์ฌ์ฃผ์ ์์ค์ ์ ์ผ ์ฒ์์ audio ์์ฑ์ ํ ๋นํ๋ ๊ฐ์ฒด๋ ์๋ง๋ ์ค๋์ค๋ฅผ ์ป๊ธฐ ์ํด ์ฌ์ฉํ Constraints ์ธ ๋ฏํ๋ฐ, echoCancellation ์ ๊ฐ๋ ์ผ๋จ์ false๋ก ๋๊ณ , ๊ฐ์ข ํํฐ๋ค๋ ์ ๊ฑฐํ ์ํ์์ ๋จผ์ ํ ์คํธ ํด๋ณด๊ธฐ๋ฅผ ๊ถ์ฅ ๋๋ฆฝ๋๋ค.๋ง์ฝ ์ค๋์ค ์ฌ์์ ๋ฒํผ๋ฅผ ์ฌ์ฉํ๋ ํน๋ณํ ์ด์ ๊ฐ ์๋ค๋ฉด MediaStream ๊ฐ์ฒด ๋จ์์์ ๋ค๋ฃจ๊ณ , WebRTC๋ฅผ ์ฌ์ฉํ์ฌ ์ ์กํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ ์ฌ์ฉ๋ ๊ถํด ๋๋ฆฝ๋๋ค. WebRTC๋ ์ค๋์ค, ๋น๋์ค ์ ์ก์ ํธ๋ฆฌํ๋๋ก ๋ง๋ค์ด์ ธ ์๊ธฐ ๋๋ฌธ์ด๋ฉฐ ์ฑ๋ฅ๊ณผ ์์ ์ฑ๋ ๋ฐ์ด๋ฉ๋๋ค.๋ค๋ฅธ ๊ณณ์์๋ ์ธ์์ด ๋๋ raw ๋ฐ์ดํฐ(AudioBuffer์ ์ฌ์ฉํ๋)๋ผ๊ณ ํ๋๋ผ๋ ์น ์์ AudioBuffer์์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ์๋ ๋ค๋ฅธ ํํ์ผ ์๋ ์์ต๋๋ค. (๋ณดํต input ์ชฝ์ decodeAudioData๋ฅผ ํตํด ์ถ์ถํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.) raw ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋ค๋ฃจ๋ ๊ฒ์ ์ ๋ง ๋์ด๋๊ฐ ๋์ ์์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง, ์ง๊ธ ๋ณด์ฌ์ฃผ์ ์์ค ์ฝ๋ ๊ธฐ์ค์ผ๋ก ํ ๊ฐ์ง ๋ง์๋๋ฆฌ๊ณ ์ถ์ ๊ฒ์ ์์ต๋๋ค.playNextChunk ํจ์๋ ์๋ง๋ ๋ฐ๋ณต์ ์ผ๋ก ํธ์ถ๋๋ ํจ์๋ก ๋ณด์ฌ์ง๋๋ค. ๋ง์ฝ ๊ทธ๋ ๋ค๋ฉด playNextChunk ํจ์์์ ์์ฑํ๋ AudioBufferSourceNode(createBufferSource๋ฅผ ํตํด ์์ฑํ)๊ฐ ๊ณ์ํด์ AudioContext์ destination์ ์ฐ๊ฒฐ๋๋ ๋ฏ ๋ณด์ ๋๋ค. ์ฆ, ์ฌ๋ฌ ๊ฐ์ Source๊ฐ ๋ฐ๋ณตํด์ ์ฐ๊ฒฐ๋๋ ๊ฒ ์ฒ๋ผ ๋ณด์ ๋๋ค.์ด์ ์ ์ฌ์ฉํ Source๊ฐ ์๋ค๋ฉด disconnect ํ ํ ์๋ก ์์ฑํ Source ๋ฅผ ์ฐ๊ฒฐํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค. ์ ์ ์๊ฒฌ์ด ๋์์ด ๋์๊ธธ ๋ฐ๋ผ๋ฉฐ, ์งํํ์๋ ํ๋ก์ ํธ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๋ง๋ฌด๋ฆฌํ์๊ธธ ๊ธฐ์ํ๊ฒ ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 1
- 37
Q&A
์๋ ํ์ธ์ 8์ฅ ํ์ตํ๋ค ๊ถ๊ธํ๊ฒ ์์ด ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์.MediaStream API ์์ MediaStream์ ์์ฒญํ๋ ๊ฒ์ ์นด๋ฉ๋ผ ๋ฐ ๋ง์ดํฌ ํ๋์จ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก, ๋ค์ํ ์ด์ ์์ ์์ธ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ฒ์ ๋ฌธ์ ์ฃผ์ NotReadableError : Device in use ์ ๊ฒฝ์ฐ์๋ ํด๋นํ๋ ์ฅ์น๊ฐ ์ด๋ฏธ ๋ค๋ฅธ ๊ณณ์์ ์ฌ์ฉํ๊ณ ์์ด ์ง๊ธ์ ์ฌ์ฉ์ด ํ๋ค ๊ฒฝ์ฐ ๋ฐ์ํฉ๋๋ค.๊ธฐ๋ณธ์ ์ผ๋ก๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ด๋ฏธ ์นด๋ฉ๋ผ ํน์ ๋ง์ดํฌ๋ฅผ ๋ ์ ์ ์ผ๋ก ๊ถํ์ ์ป์ด ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ฃผ๋ก, ์น์ด ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ํํ๋ฅผ ์ทจํ๋ ํ์ํ์ ์์คํ ์ด ์ด๋ฌํ ๊ฒฝ์ฐ๊ฐ ์์์์ ์ข ์ข ๊ด์ฐฐํ์์ต๋๋ค.๋ณดํต ์น์ ๊ฒฝ์ฐ ์ด๋ ๊ฒ ๋ ์ ์ ์ผ๋ก ์ฅ์น์ ๊ถํ์ ์ป์ด ์ฌ์ฉํ์ง ์์ง๋ง, MediaStream์ ํด์ ์์ด ๊ณ์์ ์ผ๋ก ์์ฒญํ์ฌ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.ํํ์ง๋ ์์ง๋ง, ์์ฒญ์ ํ ์์ ์ ์ผ์์ ์ธ ํ๋์จ์ด์ ๋ฌธ์ ๋ก ์ธํ์ฌ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ๋ณดํต์ ์นด๋ฉ๋ผ ํน์ ๋ง์ดํฌ์ ๊ถํ์ ๊ฐ๊ณ ์๋ ํ๋ก๊ทธ๋จ ํน์ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํ๊ณ ๋ค์ ์๋ํ๋ฉด ๋ณดํต์ ๊ฒฝ์ฐ ๋๋ถ๋ถ ์์ฒญ์ ์ฑ๊ณตํ ๊ฒ ์ ๋๋ค.์ค์ ์ด๋ฌํ ์์ธ๊ฐ ๋ฐ์ํ ์ ์์์ ์๊ณ ๊ณ์ จ๋ค๊ฐ, ์ค์ ํ๋ก์ ํธ ์ ์ฉ ํ ๋์ ๋์ ๋ฐฉ์์ ๊ณ ๋ฏผํด ๋ณด์๋ ๊ฒ๋ ์ข์ ๋ณด์ ๋๋ค. ๋ฐ๋ก ์ด๋ฌํ ๋ด์ฉ์ด ํ์ต์ ๋๋ง์ ๊ณ ์ ํ ๋ ธํ์ฐ๋ผ ๋ถ๋ฆด ๋งํ ๊ฒ์ด๋๊น์. ๊ฑด๊ฐํ๊ณ ํ๋ณตํ ๋๋ ๋ณด๋ด์๊ธธ ๋ฐ๋ผ๋ฉด์, ์ ์ ๊ฐ์์ ๊ด์ฌ์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
- 0
- 2
- 68




