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๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ฐ์ , ์ฌ์ฉ ๊ฐ๋ฅํ ์ ๋ ฅ ์ฅ์น ๋ชฉ๋ก์ ์กฐํํ ์ ์๋ getDeviceList() ๋ฅผ ํตํด์ ์ฌ์ฉํ๊ณ ์ ํ๋ ์ฅ์น์ deviceId๋ฅผ ํ๋ํฉ๋๋ค.
setAudioDevice() ํ๋ผ๋ฏธํฐ๋ก deviceId๋ฅผ ์ ๋ฌํ์ฌ ์ ๋ ฅ ์ฅ์น๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋ฃธ ์ญ์
ํ์ฌ ์ฐธ์ฌ์ค์ด์ง ์์ ํ์์ค์ destroyRoom() API ๋ฅผ ์ฌ์ฉํ์ฌ ํ์์ค์ ์ญ์ ํ ์ ์์ต๋๋ค.
Last updated