본문으로 건너뛰기
Version: 6.2

볼륨 제어

PlanetKit은 그룹 통화에서 다양한 방식으로 피어의 볼륨을 제어하며, 각 방식은 서로 영향을 줍니다. 이 페이지에서 정확한 사용법을 확인하세요.

지원 통화 유형최소 SDK 버전
그룹 통화(컨퍼런스)PlanetKit 3.6

PlanetKit 볼륨 제어

그룹 통화 도중에 볼륨을 제어하는 방식은 4가지입니다.

볼륨 제어 단계

각 방식이 차례로 적용되며, 앞 단계 제어가 뒷 단계 제어에 영향을 줍니다.

1. 피어 볼륨 제어

애플리케이션은 특정 피어의 볼륨을 제어할 수 있습니다.

2. 서브그룹 무음 처리 설정

애플리케이션은 특정 서브그룹의 오디오 전체를 무음 처리(silence)할 수 있습니다.

3. 주요 오디오를 듣기 위한 자동 볼륨 제어

PlanetKit은 애플리케이션이 포커스 목록(focus list)을 만들고 그에 집중할 수 있게 해줍니다. PlanetKit은 포커스 목록에 있는 참여자가 발언할 때 포커스 목록에 없는 서브그룹의 오디오 볼륨을 낮춥니다. 포커스 목록에 있는 누구도 발언하지 않으면 볼륨을 낮추지 않습니다.

4. 믹스된 오디오 무음 처리 설정

애플리케이션은 모든 오디오를 무음 처리할 수 있습니다.

볼륨 제어 API 사용 방법

각 볼륨 제어 방식에 대해 API 사용 방법을 샘플 코드와 함께 설명합니다.

피어 볼륨 제어

특정 피어의 오디오 볼륨을 제어하려면 PlanetKitPeerControlsetVolumeLevelSetting()을 사용하세요. 이 메서드는 다음과 같은 파라미터를 전달받습니다.

파라미터설명
volumeLevel0에서 110까지 범위 내의 오디오 볼륨 레벨.
0은 음 소거, 100은 원래 볼륨, 110은 가장 큰 볼륨입니다.
func setPeerVolumeExample(peerControl: PlanetKitPeerControl, volumeLevel: Int8) {
peerControl.setVolumeLevelSetting(volumeLevel) { success in
print("setVolumeLevelSetting(volumeLevel=\(volumeLevel)) result: \(success)")
}
}

서브그룹 무음 처리 설정

특정 서브그룹의 오디오 전체를 무음 처리하거나 무음 처리 해제하려면 PlanetKitSubgroupManagersilencePeersAudio()를 사용하세요. 이 메서드는 다음과 같은 파라미터를 전달받습니다.

파라미터설명
subgroupName대상 서브그룹의 이름
silenced오디오의 무음 처리 또는 무음 처리 해제 여부
// subgroupName: Name of the subgroup to silence, or nil for main room
// silenced: true to silence, false to unsilence
func silenceSubgroupExample(subgroupManager: PlanetKitSubgroupManager, subgroupName: String?, silenced: Bool) {
subgroupManager.silencePeersAudio(subgroupName: subgroupName, silenced: silenced) { success in
print("silencePeersAudio(subgroupName=\(subgroupName ?? "main room"), silenced=\(silenced)) result: \(success)")
}
}

주요 오디오를 듣기 위한 자동 볼륨 제어

포커스 목록에 있는 서브그룹의 자동 볼륨 제어를 활성화하려면 PlanetKitSubgroupManagersetPeersAudioAutoVolumeControl()을 사용하세요. 이 메서드는 다음과 같은 파라미터를 전달받습니다.

파라미터설명
focusSubgroupNames자동 볼륨 제어를 활성화할 서브그룹 이름의 배열
focusMainRoomtrue이면 기본 방(main room)에 대한 자동 볼륨 제어를 활성화합니다.
// focusSubgroupNames: Array of subgroup names to prioritize
// focusMainRoom: Set true to prioritize main room audio
func enableAutoVolumeControlExample(subgroupManager: PlanetKitSubgroupManager, focusSubgroupNames: [String], focusMainRoom: Bool) {
subgroupManager.setPeersAudioAutoVolumeControl(focusSubgroupNames: focusSubgroupNames, focusMainRoom: focusMainRoom) { success in
print("setPeersAudioAutoVolumeControl result: \(success)")
}
}

포커스 목록에 있는 서브그룹의 자동 볼륨 제어를 비활성화하려면 PlanetKitSubgroupManagerclearPeersAudioAutoVolumeControl()을 사용하세요.

func disableAutoVolumeControlExample(subgroupManager: PlanetKitSubgroupManager) {
subgroupManager.clearPeersAudioAutoVolumeControl { success in
print("clearPeersAudioAutoVolumeControl result: \(success)")
}
}

믹스된 오디오 무음 처리 설정

모든 오디오를 무음 처리하려면 PlanetKitConferencesilencePeersAudio()를 사용하세요. 이 메서드는 다음과 같은 파라미터를 전달받습니다.

파라미터설명
silent오디오의 무음 처리 또는 무음 처리 해제 여부
// silent: true to silence, false to unsilence
func silenceAllPeersExample(conference: PlanetKitConference, silent: Bool) {
conference.silencePeersAudio(silent) { success in
print("silencePeersAudio(silent=\(silent)) result: \(success)")
}
}

서브그룹 태그와 자동 볼륨 제어

setTagMyAudioOfMainRoom() 메서드는 기본 방으로 전송하는 오디오를 서브그룹으로 태그하게 해줍니다. PlanetKit의 자동 볼륨 제어 모듈은 태그된 오디오가 서브그룹에서 오는 것으로 간주합니다.

서브그룹으로 태그된 오디오는 그 서브그룹이 포커스 목록에 없다면, 포커스된 서브그룹에 있는 사용자가 발언할 때 자동으로 볼륨이 감소됩니다. 반대로 서브그룹으로 태그된 오디오가 포커스 목록에 있다면, 포커스된 서브그룹에 있는 사용자가 발언할 때 다른 오디오의 볼륨이 자동으로 감소됩니다.

관련 샘플 코드는 아래와 같습니다.

오디오 태그 설정

// taggedSubgroupName: Subgroup name to tag the audio with
func setAudioTagExample(subgroupManager: PlanetKitSubgroupManager, taggedSubgroupName: String) {
subgroupManager.setTagMyAudioOfMainRoom(taggedSubgroupName: taggedSubgroupName) { success in
print("setTagMyAudioOfMainRoom(taggedSubgroupName=\(taggedSubgroupName)) result: \(success)")
}
}

오디오 태그 해제

func clearAudioTagExample(subgroupManager: PlanetKitSubgroupManager) {
subgroupManager.clearTagMyAudioOfMainRoom { success in
print("clearTagMyAudioOfMainRoom result: \(success)")
}
}

관련 API

볼륨 제어와 관련된 API는 다음과 같습니다.