Android - Getting Started
Last updated
Last updated
์๋๋ก์ด๋ ๊ฐ๋ฐ ํ๊ฒฝ
minSdkVersion 21์ด์
java 1.8 ์ด์
Minimum SDK Level 21์ด์์ผ๋ก ์ค์ ํฉ๋๋ค.
Open Module Settings์์ Source Compatibility, Target Compatibility๋ฅผ 1.8 ์ด์์ผ๋ก ์ค์ ํด์ค๋๋ค.
๊ทธ ์ธ์ multiDex ๋ฅผ ์ค์ ํฉ๋๋ค.
์๋๋ก์ด๋ ์ต์ ๋ฒ์ ์ ๊ฒฝ์ฐ ์ฑ์ ๊ถํ์ ๋ํด ์ฒ์ ์ฑ ์ฌ์ฉ์ ์ฌ์ฉ์์๊ฒ ์ง์ ๋ฌป๊ฒ ๋ฉ๋๋ค. ์๋น์ค์์ ์ถ๊ฐ์ ์ผ๋ก ํ์ํ ๊ถํ์ ์ค์ ํฉ๋๋ค. SDK ์์ ๋ํดํธ๋ก ํ์๋กํ๋ ๊ถํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด์ ๋ชจ๋ ์ค๋น๊ฐ ๋๋ฌ์ต๋๋ค. ์๋๋ฅผ ํตํด ์ธ๋ถ์ ์ธ ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ ํ์ธํ์ธ์.
SDK๋ฅผ ํตํด RemoteMonster ๋ฐฉ์ก, ํต์ ์ธํ๋ผ์ ์ ๊ทผํ๋ ค๋ฉด, Service Id์ Key๊ฐ ํ์ํฉ๋๋ค. ๊ฐ๋จํ ํ ์คํธ์ ๋ฐ๋ชจ๋ฅผ ์ํด์๋ผ๋ฉด ์ด ๊ณผ์ ์ ๋์ด๊ฐ๋ ์ข์ต๋๋ค. ์ค์ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๊ณ ์ด์ํ๊ธฐ ์ํด์๋ ์๋๋ฅผ ์ฐธ๊ณ ํ์ฌ Service Id, Key๋ฅผ ๋ฐ๊ธ ๋ฐ์ ์ ์ฉํ๋๋ก ํฉ๋๋ค.
๋ฐฉ์ก๊ณผ ํตํ ๋ชจ๋ ์์ฑ์ ์ฉ์ด ์๋๋ผ๋ฉด ํ๋ฉด์ ์นด๋ฉ๋ผ ํ๋ฉด์ด๋ ์๋ํธ์ ํ๋ฉด์ ํ์ํด์ผ ํฉ๋๋ค. Remon SDK์์๋ ์ด๋ฌํ ํ๋ฉด์ ๋ด๋นํ๋ View๊ฐ ๋ณ๋๋ก ์์ต๋๋ค. SurfaceViewRenderer
์
๋๋ค. SurfaceViewRenderer๋ฅผ layout.xml์ ๋ฑ๋กํ๊ณ ํด๋น view๋ฅผ Remon SDK์ ์ง์ ํด์ค์ผ ํฉ๋๋ค.
์ฆ, ๋ค์๊ณผ ๊ฐ์ด layout.xml์ Remon์ SurfaceViewRenderer๋ฅผ ๋ฑ๋กํฉ๋๋ค.
์ ์์์๋ local ์ฆ ์๊ธฐ ์์ ์ ์นด๋ฉ๋ผ์์์ ์ถ๋ ฅํ๋ view์ remote ์ฆ ์๋๋ฐฉ์ ์์์ ์ถ๋ ฅํ๋ view๋ฅผ ๊ฐ๊ฐ ๋ฑ๋กํ์์ต๋๋ค. ์ด์ ํ์ํ ์์ ์ด ๋ชจ๋ ์๋ฃ๋์์ต๋๋ค. ์์ layout์ ๋ฐฉ์ก์ ์ก์ถํ๊ฑฐ๋ ์์ฒญ ํน์ ํตํ๋ฅผ ์๋ํ๊ธฐ ์ํ ๋ฒํผ์ ์ถ๊ฐํ๋ฉด ๊ธฐ๋ณธ์ ์ธ Remon SDK๋ฅผ ๊ตฌ๋์์ผ๋ณผ ์ค๋น๊ฐ ์๋ฃ๋์์ต๋๋ค.
RemonCast
๋ก ๋ฐฉ์ก ๊ธฐ๋ฅ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
'CHANNEL_ID'๋ผ๋ ์ด๋ฆ์ ๋ฐฉ์ก์ ์์ฒญํฉ๋๋ค.
์์ฒญ์ ๊ฒฝ์ฐ ๋จผ์ ๋ฐฉ์ก ๋ชฉ๋ก์ ๊ฐ์ ธ์์ผ ํฉ๋๋ค. ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ RemonCast์ ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ๋ฐฉ์ก ๋ชฉ๋ก์ ๋ฐ์์์ผ ํฉ๋๋ค.
๋ฐฉ์ก ์๋น์ค ๊ฐ๋ฐ์ ์ํ ์ข ๋ ์์ธํ ๋ด์ฉ์ ์๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
RemonCall
๋ก ํตํ ๊ธฐ๋ฅ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
๋ง์ฝ A๋ผ๋ ํตํ์ฉ ์ฑ๋์ ๋ง๋ค์๋๋ฐ ์๋๋ฐฉ์ ์ด๋ป๊ฒ A๋ผ๋ ์ฑ๋์ด ์๋์ง ํ์ธํ ์ ์์๊น์? ๊ฒ์์ ํด์ผํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด RemonCall์ ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ์ฑ๋์ ๊ฒ์ํ๊ณ ํด๋น ์ฑ๋์ ๋ค์ด๊ฐ ์ ์์ต๋๋ค. ํตํ๋ ํญ์ 2๋ช ๋ง ์ฐธ์ฌํ ์ ์์ต๋๋ค.
ํตํ์ ๋ํ์ฌ ์ข ๋ ์์ธํ ๋ด์ฉ์ ์๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
remonCall์ด๋ remonCast๋ก ์ํํ ์ ์๋ ๋ฉ์๋๋ ํฌ๊ฒ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
close() : ๋ฐฉ์ก์ด๋ ํตํ๋ฅผ ์ข ๋ฃํ ๋ ์ฌ์ฉํฉ๋๋ค. ๋ชจ๋ ์์์ด ์ฌ๋ผ์ง๋๋ค. close ํ์ ๋ค์ RemonCall์ด๋ RemonCast๋ฅผ ์ด์ฉํ์ฌ ๋ฐฉ์ก/ํตํ๋ฅผ ์ฌ๊ฐํ๊ณ ์ถ๋ค๋ฉด ๊ฐ์ฒด๋ฅผ ์๋กญ๊ฒ ์์ฑํ์ ์ผ ํฉ๋๋ค.
showLocalVideo(): ๋ฐฉ์ก์ด๋ ํตํ ์์ ์ ์ ์์ ์ ์นด๋ฉ๋ผ ํ๋ฉด์ ๋ฏธ๋ฆฌ ๋ณด๊ณ ์ถ์๋ ํธ์ถํฉ๋๋ค.
pauseLocalVideo(true): ๋ฐฉ์ก์ด๋ ํตํ ์ค ์์ ์ ์นด๋ฉ๋ผ ํ๋ฉด์ ์ค์งํ๊ณ ์ถ์ ๋ ํธ์ถํฉ๋๋ค.
switchCamera(): ๋ชจ๋ฐ์ผ ํ๋ซํผ์์ ๊ฐ์ง๊ณ ์๋ ์นด๋ฉ๋ผ๋ฅผ ์์ฐจ์ ์ผ๋ก ์ค์์นญํด์ ๋ณด์ฌ์ค๋๋ค.
fetchCalls, fetchCasts: ์ฑ๋ ๊ฒ์์ ์ํ ๋ช ๋ น์ ๋๋ค.
๋ค์ํ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ด๋ฒคํธ ์ฝ๋ฐฑ์ ๋ฐฉ์ก, ํต์ ์ ๋ฐ๋ผ ์ฝ๋ฐฑ์ ์ข ๋ฅ๊ฐ ๋ค๋ฆ ๋๋ค.
onInit(): ๋ฐฉ์ก(RemonCast), ํตํ(RemonCall) ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด ์ธ์ฆ์ ์ฐจ๋ฑ์ ๊ฑฐ์ณ์ ๊ฐ์ฒด ์์ฑ์ด ๋ง๋ฌด๋ฆฌ๋ฉ๋๋ค. ์ด๋ ๊ฒ ์ ๋ง๋ฌด๋ฆฌ๋๋ฉด onInit๋ฉ์๋๊ฐ ํธ์ถ๋ฉ๋๋ค. ๋ณดํต onInit์ ์ธ์๋ก ์ธ์ฆ์ ๊ฒฐ๊ณผ์ธ token๊ฐ์ด ๊ฐ์ด ์ ์ก๋ฉ๋๋ค.
onConnect(): ํตํ(RemonCall)๋ฅผ ์ํ ์ฑ๋์ด ๋ง๋ค์ด์ก์ ๋ ๋ฐ์ํฉ๋๋ค. ์ฐ๊ฒฐ๋ ์ฑ๋๋ช (์ฑ๋ID)๊ฐ ์ ๋ฌ๋๋ฉฐ, ๋์ผํ ์ฑ๋์ ์ ์ํ ์ฌ์ฉ์๊ฐ Peer ์ฐ๊ฒฐ์ด ์งํ๋ฉ๋๋ค.
onComplete : ํตํ(RemonCall) ๋ฅผ ์ํด ๋ค๋ฅธ ์ฌ์ฉ์์์ Peer ์ฐ๊ฒฐ์ด ์๋ฃ๋ ์ดํ ๋ฐ์ํฉ๋๋ค.
onCreate(): ๋ฐฉ์ก(RemonCast) ์ ์จ์ ํ ์ก์ถํ๊ฒ ๋ ๋ ๋ฐ์ํฉ๋๋ค. ์ธ์๊ฐ์ผ๋ก ๋ฐฉ์ก๋ฃธ์ ID๊ฐ ๋ฐํ๋ฉ๋๋ค.
onJoin(): ๋ฐฉ์ก(RemonCast) ์์ฒญ์ด ์จ์ ํ ์ด๋ฃจ์ด์ง ๋ ๋ฐ์ํฉ๋๋ค.
onClose(): ๋ฐฉ์ก(RemonCast)๊ณผ ํตํ(RemonCall)๊ฐ ์ข ๋ฃ๋์์ ๋ ๋ฐ์ํฉ๋๋ค. ์ธ์๊ฐ์ผ๋ก CloseType์ด ์ ๋ฌ๋ฉ๋๋ค.
onError(): ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ๋ชจ๋ ์ด onError๋ก ์ค๋ฅ ๋ฉ์์ง๊ฐ ์ ๋ฌ๋ฉ๋๋ค.
onStat(): ํ์ฌ ๋ฐฉ์ก, ํตํ ํ์ง์ 3์ด๋ง๋ค ์ฃผ๊ธฐ๋ก ์๋ ค์ค๋๋ค.
์ฝ๋ฐฑ์ ๋ํด ์ธ๋ถ ๋ด์ฉ ์๊ณ ์ถ์ผ์๋ฉด ์๋ ๋ด์ฉ์ ์ฐธ๊ณ ํ์ธ์.
๋ฒํผ์ ํด๋ฆญํ๋ฉด 'CHANNEL_ID'๋ผ๋ ์ด๋ฆ์ ๋ฐฉ์ก room์ด ๋ง๋ค์ด์ ธ์ ๋น์ ์ ๋ฐฉ์ก์ ์ฆ์ ํ ์ ์์ต๋๋ค. ๋น์ ์ ๋ฐฉ์ก์ ์์ฒญํ๊ณ ์ถ๋ค๋ฉด ๋ค์ ์์ ๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋ฐ์ ํ์๊ฑฐ๋ ์์ ๋น์ ์ ๋ฐฉ์ก์ ์์ฒญํด๋ณด์ธ์.
๋ฒํผ์ ํด๋ฆญํ๋ฉด 'CHANNEL_ID'๋ผ๋ ์ด๋ฆ์ ํตํ์ฉ ๋ฐฉ์ด ๋ง๋ค์ด์ง๋๋ค. ์์ ๋น์ ์ด ๋ง๋ ์๋๋ก์ด๋ ์ฑ๊ณผ ์๋ก ํตํ๋ฅผ ํด๋ณด์ธ์.