Audio Room

audioroom์€ ์Œ์„ฑ ํšŒ์˜ ๊ธฐ๋Šฅ์„ ์ธํ„ฐ๋„ท์„ ์ด์šฉํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Omnitalk SDK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํšŒ์˜์‹ค(๋ฃธ) ์ƒ์„ฑ ๋ฐ ์ฐธ์—ฌ, ์ด๋ฒคํŠธ ๋ฉ”์‹œ์ง€์— ๋Œ€์‘ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์Œ์„ฑ ํšŒ์˜ ๊ธฐ๋Šฅ์„ ๊ฐ„๋‹จํžˆ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Step 1. ์„ธ์…˜ ์ƒ์„ฑ

Omnitalk SDK์˜ ์ดˆ๊ธฐํ™”๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์šฐ์„ ์ ์œผ๋กœ createSession()์„ ํ˜ธ์ถœํ•˜์—ฌ ์„ธ์…˜์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. createSession()์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์ธ user_id๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ์œ ํ•œ id์ด๋ฉฐ audiocall ๋ฐœ์‹ ์„ ์œ„ํ•œ offerCall() ํ˜ธ์ถœ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. user_id๋Š” Optional ์ด๋ฉฐ, ์ƒ๋žต์‹œ Omnitalk ์„œ๋ฒ„์—์„œ ์ž„์˜์˜ id๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

await sdk.createSession(user_id);

Step 2. ํšŒ์˜์‹ค ์ƒ์„ฑ / ์กฐํšŒ

createRoom() API ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ๋žŒ๋“ค์ด ์ž…์žฅ ํ•  ์ˆ˜ ์žˆ๋Š” ํšŒ์˜์‹ค(๋ฃธ)์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. createRoom()์˜ ํ•„์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ์€ room_type์€ Omnitalk SDK์—์„œ enum type์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์Œ์„ฑ ํšŒ์˜์˜ ๊ฒฝ์šฐ๋Š” AUDIO_ROOM ์„ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. createRoom() API ๋ฆฌํ„ด ๊ฐ์ฒด์— room_id ๋กœ ํšŒ์˜์‹ค์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

await sdk.createRoom(VIDEOROOM_TYPE.AUDIO_ROOM, "subject", "123456")

์ด๋ฏธ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ํšŒ์˜์‹ค์„ ์ƒ์„ฑ ํ–ˆ๋‹ค๋ฉด roomList() API ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ์ƒ์„ฑ๋œ ํšŒ์˜์‹ค ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Œ์„ฑ ํšŒ์˜์‹ค ๋ชฉ๋ก๋งŒ ์กฐํšŒํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ room_type ์„ AUDIO_ROOM ์œผ๋กœ ์ „๋‹ฌํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์กฐํšŒํ•œ ๋ชฉ๋ก ๊ฒฐ๊ณผ์— room_id ๋กœ ํšŒ์˜์‹ค์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

await sdk.roomList(VIDEOROOM_TYPE.AUDIO_ROOM);

Step 3. ํšŒ์˜์‹ค ์ฐธ์—ฌ

joinRoom() API ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํšŒ์˜์‹ค์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํšŒ์˜์‹ค์— ์ฐธ์—ฌํ•˜๊ฒŒ ๋˜๋ฉด ๋ณ„๋„์˜ ์ž‘์—… ์—†์ด ์ฐธ์—ฌ์ž๋“ค๊ณผ ์Œ์„ฑ ํšŒ์˜๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉฐ, ํšŒ์˜์‹ค์— ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ ๋ฉ”์„ธ์ง€๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Œ์„ฑ ํšŒ์˜์‹ค์—์„œ ์ˆ˜์‹  ๊ฐ€๋Šฅํ•œ ์ด๋ฒคํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Event Message ๋ฅผ ์ฐธ์กฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

  • CONNECTED_EVENT - ์ƒˆ๋กœ์šด ์ฐธ๊ฐ€์ž ์ž…์žฅํ–ˆ์„ ๋•Œ

  • LEAVE_EVENT - ๋‹ค๋ฅธ ์ฐธ๊ฐ€์ž๊ฐ€ ํ‡ด์žฅ ํ–ˆ์„ ๋•Œ

  • MUTE_EVENT - ๋‹ค๋ฅธ ์ฐธ๊ฐ€์ž๊ฐ€ mute ํ–ˆ์„ ๋•Œ

  • UNMUTE_EVENT - ๋‹ค๋ฅธ ์ฐธ๊ฐ€์ž๊ฐ€ unmute ํ–ˆ์„ ๋•Œ

  • MESSAGE_EVENT - ์ฑ„ํŒ… ๋ฉ”์„ธ์ง€ ์ˆ˜์‹  ์ด๋ฒคํŠธ, ํšŒ์˜์‹ค ์ž…์žฅ์‹œ ์ฑ„ํŒ… ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ฑ„ํŒ…๊ธฐ๋Šฅ ์‚ฌ์šฉ๋ฒ•์€ Chatting ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

await sdk.joinRoom(room_id);

Step 4. ํšŒ์˜์‹ค ํ‡ด์žฅ

leave() API๋ฅผ ํ†ตํ•ด์„œ ์ „ํ™” ์—ฐ๊ฒฐ์„ ๋Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ์— session์„ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ž์‹ ์˜ ๋ฐฉ์†ก์„ ์ข…๋ฃŒํ•˜๊ณ  ํ‡ด์žฅ(ํ†ตํ™” ์ข…๋ฃŒ)ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. session๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ํ•ด๋‹น session์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๊ฐ€ ํ‡ด์žฅ(ํ†ตํ™” ์ข…๋ฃŒ) ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ƒํ™ฉ์€ ์ˆ˜์‹  ๊ฑฐ์ ˆ์ด๋‚˜ ๊ฐ•์ œ ํ‡ด์žฅ ๋“ฑ์˜ ๊ธฐ๋Šฅ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

await sdk.leave();

์ฐธ์—ฌ์ž ๋ชฉ๋ก ์กฐํšŒ

partiList() API ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…์žฅํ•œ ํšŒ์˜์‹ค์— ์ฐธ์—ฌํ•œ ์‚ฌ์šฉ์ž ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ถ”๊ฐ€ ์˜ˆ์ • - partiList์˜ ๊ฒฐ๊ณผ์— ๋‹ค๋ฅธ ์ฐธ๊ฐ€์ž์˜ mute ์—ฌ๋ถ€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋””์˜ค ์žฅ์น˜ ์ œ์–ด

mute/unmute

์ „ํ™” ํ†ตํ™”์ค‘์— ์Œ์†Œ๊ฑฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋„๋ก API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋ฒ•๊ณผ ์ž์„ธํ•œ ๋‚ด์šฉ์€ API Reference์˜ mute/unmute ๋ถ€๋ถ„์„ ์ฐธ์กฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. mute/unmute API์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์ธ track type์€ Omnitalk SDK์—์„œ enum type์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

await sdk.setMute(TRACK_TYPE.AUDIO);

์ž…๋ ฅ ์žฅ์น˜ ๋ณ€๊ฒฝ

์ „ํ™” ์—ฐ๊ฒฐ ์ „, ๋˜๋Š” ์ „ํ™” ํ†ตํ™”์ค‘์— ์ž…๋ ฅ(๋งˆ์ดํฌ) ์žฅ์น˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  1. ์šฐ์„ , ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ž…๋ ฅ ์žฅ์น˜ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” getDeviceList() ๋ฅผ ํ†ตํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์žฅ์น˜์˜ deviceId๋ฅผ ํš๋“ํ•ฉ๋‹ˆ๋‹ค.

  2. setAudioDevice() ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ deviceId๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ์ž…๋ ฅ ์žฅ์น˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฃธ ์‚ญ์ œ

ํ˜„์žฌ ์ฐธ์—ฌ์ค‘์ด์ง€ ์•Š์€ ํšŒ์˜์‹ค์€ destroyRoom() API ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํšŒ์˜์‹ค์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Last updated