사용자 유형 설정
PlanetKit은 그룹 통화에 참여할 때 애플리케이션에서 서로 다른 범주의 사용자를 구분할 수 있도록 사용자의 유형을 설정할 수 있는 기능을 제공합니다.
이 기능을 사용하면 커스텀 사용자 유형(예: 일반 사용자와 봇)을 정의해서 사용자 유형에 따라 애플리케이션이 다르게 작동하거나 UI가 달라지게 만들 수 있습니다. 참고로 LINE Planet은 일부 사용자 유형 값을 빌트인 에이전트 역할을 위해 예약해 두었습니다.
지원 통화 유형 | 최소 SDK 버전 |
---|---|
그룹 통화(컨퍼런스) | PlanetKit 6.1 |
사용자 유형
사용자 유형은 크게 다음과 같이 분류됩니다.
- 커스텀 사용자 유형
- 애플리케이션에서 정의하고 관리하는 사용자 유형입니다.
- 값 범위: 1~9999
- PlanetKit 사용자 유형
- LINE Planet에서 내부적으로 에이전트 역할로 사용하는 사용자 유형으로
PlanetKitUserType
에 정의돼 있습니다. - 값 범위: 0, 10000~99999
- 자세한 내용은 에이전트 통화를 참고하세요.
- LINE Planet에서 내부적으로 에이전트 역할로 사용하는 사용자 유형으로
샘플 코드
다음은 사용자 유형 설정 기능을 사용하는 샘플 코드입니다.
사용자 유형 정의 및 설정
요구 사항에 맞춰 애플리케이션의 사용자 유형을 정의하고, 그룹 통화에 참여할 때 ConferenceParam::SetCustomUserType()
을 사용해 사용자 유형을 설정하세요.
constexpr unsigned int CustomUserTypeRegularUser = 1;
constexpr unsigned int CustomUserTypeBot = 2;
class YourConference {
public :
void JoinConference(PlanetKit::UserIdPtr pMyId, PlanetKit::MicPtr) {
auto pConferenceParam = PlanetKit::ConferenceParam::CreateWithAccessToken(pMyId, L"YourRoomId", L"YourRoomServiceId", L"YourAccessToken");
// Set other parameters as needed.
...
bool bResult = pConferenceParam->SetCustomUserType(CustomUserTypeRegularUser);
auto pMic = PlanetKit::PlanetKitManager::GetInstance()->GetAudioManager()->GetCurrentMic();
auto sJoinResult = PlanetKit::PlanetKitManager::GetInstance()->JoinConference(pConferenceParam, pMic, m_pConference);
}
private :
PlanetKit::PlanetKitConferencePtr m_pConference;
};
각 사용자 유형에 적용할 로직 구현
각 사용자 유형에 맞춰 처리할 로직을 구현하세요. UserTypeContainer
API를 사용해 사용자 유형을 확인할 수 있습니다.
class YourConferenceEvent : public PlanetKit::IConferenceEvent {
public :
void OnPeerListUpdate(PlanetKit::PlanetKitConferencePtr pPlanetKitConference, PlanetKit::ConferencePeerUpdateParamPtr pParam) override {
auto arrayAddedPeer = pParam->GetAddedPeer();
for(int idx = 0; idx < arrayAddedPeer.Size(); ++idx) {
auto pPeer = arrayAddedPeer.At(idx);
auto pUserTypeContainer = pPeer->GetUserType();
if(pUserTypeContainer->IsPlanetKitUserType()) {
// Predefined user types in PlanetKit.
auto ePlanetKitPredefined = pUserTypeContainer->GetPlanetKitUserType().Value();
}
else {
// Custom user type that you set.
switch(pUserTypeContainer->GetCustomUserType().Value()) {
case CustomUserTypeRegularUser :
// CustomUserTypeRegularUser
break;
case CustomUserTypeBot :
// CustomUserTypeBot
break;
}
}
}
}
};