Android - Getting Started

์ค€๋น„์‚ฌํ•ญ

  • ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

  • minSdkVersion 21์ด์ƒ

  • java 1.8 ์ด์ƒ

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ์„ค์ •

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ API ๋ ˆ๋ฒจ ์„ค์ •

Minimum SDK Level 21์ด์ƒ์œผ๋กœ ์„ค์ • ํ•ฉ๋‹ˆ๋‹ค.

Compatibility ์„ค์ •

Open Module Settings์—์„œ Source Compatibility, Target Compatibility๋ฅผ 1.8 ์ด์ƒ์œผ๋กœ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค.

Gradle ์„ค์ •

๊ทธ ์™ธ์— multiDex ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Permission ์„ค์ •

์•ˆ๋“œ๋กœ์ด๋“œ ์ตœ์‹  ๋ฒ„์ „์˜ ๊ฒฝ์šฐ ์•ฑ์˜ ๊ถŒํ•œ์— ๋Œ€ํ•ด ์ฒ˜์Œ ์•ฑ ์‚ฌ์šฉ์‹œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ง์ ‘ ๋ฌป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค์—์„œ ์ถ”๊ฐ€์ ์œผ๋กœ ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. SDK ์—์„œ ๋””ํดํŠธ๋กœ ํ•„์š”๋กœํ•˜๋Š” ๊ถŒํ•œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ

์ด์ œ ๋ชจ๋“  ์ค€๋น„๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋ฅผ ํ†ตํ•ด ์„ธ๋ถ€์ ์ธ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•˜์„ธ์š”.

Service Key

SDK๋ฅผ ํ†ตํ•ด RemoteMonster ๋ฐฉ์†ก, ํ†ต์‹  ์ธํ”„๋ผ์— ์ ‘๊ทผํ•˜๋ ค๋ฉด, Service Id์™€ Key๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ์™€ ๋ฐ๋ชจ๋ฅผ ์œ„ํ•ด์„œ๋ผ๋ฉด ์ด ๊ณผ์ •์„ ๋„˜์–ด๊ฐ€๋„ ์ข‹์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ Service Id, Key๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์•„ ์ ์šฉํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

Service Keychevron-right

๋ ˆ์ด์•„์›ƒ ์ž‘์—…

๋ฐฉ์†ก๊ณผ ํ†ตํ™” ๋ชจ๋‘ ์Œ์„ฑ์ „์šฉ์ด ์•„๋‹ˆ๋ผ๋ฉด ํ™”๋ฉด์— ์นด๋ฉ”๋ผ ํ™”๋ฉด์ด๋‚˜ ์ƒ๋Œ€ํŽธ์˜ ํ™”๋ฉด์„ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Remon SDK์—์„œ๋Š” ์ด๋Ÿฌํ•œ ํ™”๋ฉด์„ ๋‹ด๋‹นํ•˜๋Š” View๊ฐ€ ๋ณ„๋„๋กœ ์žˆ์Šต๋‹ˆ๋‹ค. SurfaceViewRenderer ์ž…๋‹ˆ๋‹ค. SurfaceViewRenderer๋ฅผ layout.xml์— ๋“ฑ๋กํ•˜๊ณ  ํ•ด๋‹น view๋ฅผ Remon SDK์— ์ง€์ •ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ๋‹ค์Œ๊ณผ ๊ฐ™์ด layout.xml์— Remon์˜ SurfaceViewRenderer๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

์œ„ ์˜ˆ์—์„œ๋Š” local ์ฆ‰ ์ž๊ธฐ ์ž์‹ ์˜ ์นด๋ฉ”๋ผ์˜์ƒ์„ ์ถœ๋ ฅํ•˜๋Š” view์™€ remote ์ฆ‰ ์ƒ๋Œ€๋ฐฉ์˜ ์˜์ƒ์„ ์ถœ๋ ฅํ•˜๋Š” view๋ฅผ ๊ฐ๊ฐ ๋“ฑ๋กํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด์ œ ํ•„์š”ํ•œ ์ž‘์—…์ด ๋ชจ๋‘ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ layout์— ๋ฐฉ์†ก์„ ์†ก์ถœํ•˜๊ฑฐ๋‚˜ ์‹œ์ฒญ ํ˜น์€ ํ†ตํ™”๋ฅผ ์‹œ๋„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์ธ Remon SDK๋ฅผ ๊ตฌ๋™์‹œ์ผœ๋ณผ ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ์†ก

RemonCast๋กœ ๋ฐฉ์†ก ๊ธฐ๋Šฅ์„ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ์†ก ์†ก์ถœ

๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด 'CHANNEL_ID'๋ผ๋Š” ์ด๋ฆ„์˜ ๋ฐฉ์†ก room์ด ๋งŒ๋“ค์–ด์ ธ์„œ ๋‹น์‹ ์€ ๋ฐฉ์†ก์„ ์ฆ‰์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ๋ฐฉ์†ก์„ ์‹œ์ฒญํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ํ•˜์‹œ๊ฑฐ๋‚˜ ์›น์šฉ Remon ์ƒ˜ํ”ŒํŽ˜์ด์ง€arrow-up-right์—์„œ ๋‹น์‹ ์˜ ๋ฐฉ์†ก์„ ์‹œ์ฒญํ•ด๋ณด์„ธ์š”.

๋ฐฉ์†ก ์‹œ์ฒญ

'CHANNEL_ID'๋ผ๋Š” ์ด๋ฆ„์˜ ๋ฐฉ์†ก์„ ์‹œ์ฒญํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉ์†ก ๋ชฉ๋ก ๊ฒ€์ƒ‰

์‹œ์ฒญ์˜ ๊ฒฝ์šฐ ๋จผ์ € ๋ฐฉ์†ก ๋ชฉ๋ก์„ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ RemonCast์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ฐฉ์†ก ๋ชฉ๋ก์„ ๋ฐ›์•„์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉ์†ก ์„œ๋น„์Šค ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ข€ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

Livecastchevron-right

ํ†ตํ™”

RemonCall๋กœ ํ†ตํ™” ๊ธฐ๋Šฅ์„ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด 'CHANNEL_ID'๋ผ๋Š” ์ด๋ฆ„์˜ ํ†ตํ™”์šฉ ๋ฐฉ์ด ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ์›น์šฉ Remon ์ƒ˜ํ”Œ ํŽ˜์ด์ง€arrow-up-right์—์„œ ๋‹น์‹ ์ด ๋งŒ๋“  ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ๊ณผ ์„œ๋กœ ํ†ตํ™”๋ฅผ ํ•ด๋ณด์„ธ์š”.

ํ†ตํ™” ๋ชฉ๋ก ๊ฒ€์ƒ‰

๋งŒ์•ฝ A๋ผ๋Š” ํ†ตํ™”์šฉ ์ฑ„๋„์„ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ์ƒ๋Œ€๋ฐฉ์€ ์–ด๋–ป๊ฒŒ A๋ผ๋Š” ์ฑ„๋„์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ๊ฒ€์ƒ‰์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด RemonCall์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฑ„๋„์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ํ•ด๋‹น ์ฑ„๋„์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ†ตํ™”๋Š” ํ•ญ์ƒ 2๋ช…๋งŒ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ†ตํ™”์— ๋Œ€ํ•˜์—ฌ ์ข€ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

Communicationchevron-right

๊ทธ ์™ธ ์ฃผ์š” ๋ฉ”์†Œ๋“œ๋“ค

remonCall์ด๋‚˜ remonCast๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋Š” ํฌ๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • close() : ๋ฐฉ์†ก์ด๋‚˜ ํ†ตํ™”๋ฅผ ์ข…๋ฃŒํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ž์›์ด ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. close ํ›„์— ๋‹ค์‹œ RemonCall์ด๋‚˜ RemonCast๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฉ์†ก/ํ†ตํ™”๋ฅผ ์žฌ๊ฐœํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ฐ์ฒด๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • showLocalVideo(): ๋ฐฉ์†ก์ด๋‚˜ ํ†ตํ™” ์‹œ์ž‘ ์ „์— ์ž์‹ ์˜ ์นด๋ฉ”๋ผ ํ™”๋ฉด์„ ๋ฏธ๋ฆฌ ๋ณด๊ณ  ์‹ถ์„๋•Œ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

  • pauseLocalVideo(true): ๋ฐฉ์†ก์ด๋‚˜ ํ†ตํ™” ์ค‘ ์ž์‹ ์˜ ์นด๋ฉ”๋ผ ํ™”๋ฉด์„ ์ค‘์ง€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

  • switchCamera(): ๋ชจ๋ฐ”์ผ ํ”Œ๋žซํผ์—์„œ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์นด๋ฉ”๋ผ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์Šค์œ„์นญํ•ด์„œ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

  • fetchCalls, fetchCasts: ์ฑ„๋„ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ๋ช…๋ น์ž…๋‹ˆ๋‹ค.

Callback์— ๋Œ€ํ•˜์—ฌ

๋‹ค์–‘ํ•œ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ์ฝœ๋ฐฑ์€ ๋ฐฉ์†ก, ํ†ต์‹ ์— ๋”ฐ๋ผ ์ฝœ๋ฐฑ์˜ ์ข…๋ฅ˜๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

  • 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์ดˆ๋งˆ๋‹ค ์ฃผ๊ธฐ๋กœ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

์ฝœ๋ฐฑ์— ๋Œ€ํ•ด ์„ธ๋ถ€ ๋‚ด์šฉ ์•Œ๊ณ ์‹ถ์œผ์‹œ๋ฉด ์•„๋ž˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

Callbackschevron-right

Last updated