リリースノート
Windows向けPlanetKit 6.0のリリースノートです。
PlanetKit 6.0.4
リリース日:2025-08-29
カメラの問題を修正
- 一部のカメラが正常に動作しない問題を修正しました。
PlanetKit 6.0.2
リリース日:2025-06-30
特定のカメラデバイスで発生する問題を解決
- 特定のカメラデバイスが開かない問題を修正しました。
PlanetKit 6.0.1
リリース日:2025-06-04
カスタムオーディオ機能を使用時に発生するクラッシュを解決
- バージョン6.0でカスタムオーディオ機能を使用する時に発生していたクラッシュの問題を修正し、解決しました。
バーチャル背景DLLに遅延ローディングを適用
- バーチャル背景機能に使用されるモジュールが遅延ロードされるように修正しました。この変更により、該当モジュールがなくてもPlanetKitを問題なく使用できるようになりました。
PlanetKit 6.0
リリース日:2025-05-16
オーディオデバイスがAudioManagerを通じて管理されるように変更
- 6.0以前のバージョンでは、
AudioManagerがデバイスインスタンスを作成するためのAPIを提供しており、これを使用してデバイスインスタンスを手動で作成する必要がありました。しかし、6.0バージョンからは、デバイス情報を提供すると、AudioManagerが内部的にデバイスインスタンスを作成して管理します。 - これで、
AudioManagerがデバイスインスタンスを管理することにより、全域的に1つのデバイスのみが使用されます。 ChangeMic()を使用してマイクを変更する場合、PlanetKitで使用中のマイクデバイスがアップデートされます。
API
変更
-
AudioManagerclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 bool GetAudioInputDeviceList(AudioDeviceInfoArray *pResultArray)bool GetMicList(AudioDeviceInfoArray& audioDeviceInfoArray)bool GetAudioOutputDeviceList(AudioDeviceInfoArray* pResultArray)bool GetSpeakerList(AudioDeviceInfoArray& audioDeviceInfoArray)bool GetDefaultAudioInputDeviceInfo(AudioDeviceInfoPtr* pAudioDeviceInfo)AudioDeviceInfoOptional GetDefaultMicInfo()bool GetDefaultAudioOutputDeviceInfo(AudioDeviceInfoPtr *pAudioDeviceInfo)AudioDeviceInfoOptional GetDefaultSpeakerInfo()
追加
AudioManagerclass 1-to-1 callGroup callMicOptional ChangeMic(AudioDeviceInfoPtr pInfo = nullptr)SpeakerOptional ChangeSpeaker(AudioDeviceInfoPtr pInfo = nullptr)bool RegisterMicExceptionEvent(MicExceptionEventPtr pMicExceptionEvent)bool DeregisterMicExceptionEvent()
削除
AudioManagerclass 1-to-1 callGroup callAudioDevicePtr CreateAudioDevice(AudioDeviceInfoPtr pInfo)AudioDevicePtr CreateDefaultInputDevice()AudioDevicePtr CreateDefaultOutputDevice()
PlanetKitCallclass 1-to-1 callbool SetAudioInputDevice(AudioDevicePtr pDevice)bool SetAudioOutputDevice(AudioDevicePtr pDevice)
MakeCallParamclass 1-to-1 callAudioDeviceOptional GetAudioInputDevice()AudioDeviceOptional GetAudioOutputDevice()void SetAudioInputDevice(AudioDevicePtr pDevice)void SetAudioOutputDevice(AudioDevicePtr pDevice)
VerifyCallParamclass 1-to-1 callAudioDeviceOptional GetAudioInputDevice()AudioDeviceOptional GetAudioOutputDevice()void SetAudioInputDevice(AudioDevicePtr pDevice)void SetAudioOutputDevice(AudioDevicePtr pDevice)
PlanetKitConferenceclass Group callbool SetAudioInputDevice(AudioDevicePtr pDevice)bool SetAudioOutputDevice(AudioDevicePtr pDevice)
ConferenceParamclass Group callAudioDeviceOptional GetAudioInputDevice()AudioDeviceOptional GetAudioOutputDevice()void SetAudioInputDevice(AudioDevicePtr pDevice)void SetAudioOutputDevice(AudioDevicePtr pDevice)
マイグレーション
-
マイクとスピーカーの使い方が同様であるため、ここではマイクの使い方だけを説明します。
-
5.5以下のバージョンでのオーディオデバイスの使用方法は、次のとおりです。
class MyAudioDevice {
AudioDevicePtr CreateAudioDevice() {
auto pPlanetKitManager = PlanetKit::PlanetKitManager::GetInstance();
auto pAudioManager = pPlanetKitManager->GetAudioManager();
AudioDeviceInfoArray audioArray;
GetAudioInputDeviceList(&audioArray);
auto pAudioDevice = CreateAudioDevice(audioArray[0]);
return pAudioDevice;
}
void SetAudioDevice(UserIdPtr pMyID, UserIdPtr pPeerID, const WString& strToken){
auto pAudioDevice = CreateAudioDevice();
auto pMakeCallParam = MakeCallParam::CreateWithAccessToken(pMyID, pPeerID, strToken);
pMakeCallParam->SetAudioInputDevice(pAudioDevice);
auto pPlanetKitManager = PlanetKit::PlanetKitManager::GetInstance();
PlanetKitCallPtr pCallPtr;
pPlanetKitManager->MakeCall(pMakeCallParam, pCallPtr);
}
} -
6.0以上のバージョンでのオーディオデバイスの使用方法は、次のとおりです。
class MyAudioDevice {
// There is no longer a need to create devices.
// AudioDevicePtr CreateAudioDevice();
void SetAudioDevice(){
auto pPlanetKitManager = PlanetKit::PlanetKitManager::GetInstance();
auto pAudioManager = pPlanetKitManager->GetAudioManager();
AudioDeviceInfoArray audioArray;
pAudioManager->GetMicList(audioArray);
pAudioManager->ChangeMic(audioArray[0]);
}
}
マイクとスピーカーデバイス情報の取得方法の変更
- 現在使用中の
MicおよびSpeakerデバイスのインスタンスは、AudioManagerを通じて取得できます。 AudioDeviceクラスがMicおよびSpeakerクラスに変更されました。MicおよびSpeakerにより、現在のボリューム値を取得して変更することができ、デバイス情報の変更に関する通知イベントを登録できます。
API
追加
AudioManagerclass 1-to-1 callGroup callSpeakerOptional GetCurrentSpeaker()MicOptional GetCurrentMic()
Micclass 1-to-1 callGroup callbool SetVolumeLevel(float fVolume)float GetVolumeLevel()bool RegisterMicEvent(MicEventPtr pEvent)bool DeregisterMicEvent(MicEventPtr pEvent)float GetPeakValue()bool IsRunning()bool RegisterVolumeLevelChangedEvent(AudioVolumeLevelChangedEventPtr pEvent)bool DeregisterVolumeLevelChangedEvent(AudioVolumeLevelChangedEventPtr pEvent)AudioDeviceInfoPtr GetDeviceInfo()bool IsCustomMic()
Speakerclass 1-to-1 callGroup callbool SetVolumeLevel(float fVolume)float GetVolumeLevel()bool bool RegisterSpeakerEvent(SpeakerEventPtr pEvent)bool DeregisterSpeakerEvent(SpeakerEventPtr pEvent)float GetPeakValue()bool IsRunning()bool RegisterVolumeLevelChangedEvent(AudioVolumeLevelChangedEventPtr pEvent)bool DeregisterVolumeLevelChangedEvent(AudioVolumeLevelChangedEventPtr pEvent)AudioDeviceInfoPtr GetDeviceInfo()bool IsCustomSpeaker()bool PlayFile(const WString& strFilePath, unsigned int unLoop)bool StopPlay()
IAudioVolumeLevelChangedEventclass 1-to-1 callGroup callvoid OnNotify(const AudioDeviceInfoPtr pAudioInfo, const SAudioEndpointVolumeInfo& sInfo)
IMicEventclass 1-to-1 callGroup callbool DidCapture(const SAudioData& sAudioData)
EMicStartErrorenum 1-to-1 callGroup callPLNK_MIC_START_ERROR_INTERNAL_REASONPLNK_MIC_START_ERROR_NOT_ENOUGH_MEMORYPLNK_MIC_START_ERROR_DEVICE_INVALIDPLNK_MIC_START_ERROR_AUDIO_SERVICE_NOT_RUNNINGPLNK_MIC_START_ERROR_DEVICE_IN_USE_EXCLUSIVE_BY_OTHER_APPLICATIONPLNK_MIC_START_ERROR_CPU_USAGE_EXCEEDEDPLNK_MIC_START_ERROR_PREVIEW_EVENT_NOT_VALID
IMicExceptionEventclass 1-to-1 callGroup callvoid OnMicStartError(EMicStartError eMicrophoneStartError)
IMicPreviewEventclass 1-to-1 callGroup callvoid OnMicPreviewVolume(float fVolume)
ISpeakerEventclass 1-to-1 callGroup callbool WillPlay(SAudioData& sAudioData)
削除
AudioDeviceclass 1-to-1 callGroup callIAudioDeviceVolumeChangedEventclass 1-to-1 callGroup callIAudioDeviceInputDelegateclass 1-to-1 callGroup callIAudioDeviceOutputDelegateclass 1-to-1 callGroup call
マイク確認用プレビュー機能の追加
- 「プレビュー」とは、現在のマイクデバイスのボリュームを周期的に確認するイベントを意味します。
- プレビューイベントを登録できる機能を追加しました。
API
追加
AudioManagerclass 1-to-1 callGroup callbool bool StartMicPreview(MicPreviewEventPtr pMicPreviewEvent, unsigned int unInterval)bool StopMicPreview()
カスタムオーディオの提供
- ユーザーが直接作成できるカスタムオーディオ機能を追加しました。
API
追加
CustomMicclass 1-to-1 callGroup callbool PutAudioData(SAudioData& audioData)
CustomSpeakerclass 1-to-1 callGroup callbool PullAudioData(SAudioData& audioData)
通話受信中にクラウド通話録音の有効化の可否確認機能を追加
PlanetKitCCParamに通話受信中にクラウド通話録音が有効になっているかどうかを確認できるパラメーターを追加しました。
API
追加
CCParamclass 1-to-1 callbool IsRecordOnCloudEnabled()
バーチャル背景機能の提供
- バーチャル背景機能を追加しました。
API
追加
EVirtualBackgroundTypeenum 1-to-1 callGroup callPLNK_VIRTUAL_BACKGROUND_TYPE_NONEPLNK_VIRTUAL_BACKGROUND_TYPE_BLURPLNK_VIRTUAL_BACKGROUND_TYPE_IMAGE
Imageclass 1-to-1 callGroup callImageOptional Create(IWICBitmap* pBitmap)ImageOptional Create(WString& strPath)VImageOptional Create(BYTE* pBuffer, unsigned int unWidth, unsigned int unHeight, ESupportedVirtualBackgroundFormat supportedFormat)unsigned int Width()unsigned int Height()
CameraControllerclass 1-to-1 callGroup callbool SetVirtualBackgroundWithBlur(float fBlurRadius)bool SetVirtualBackgroundWithImage(ImagePtr pImage)void ClearVirtualBackground()EVirtualBackgroundType GetCurrentVirtualBackgroundType()
メモリー管理のためのSharedPtr提供
- メモリー管理を簡単にできるようにする
SharedPtrを追加しました。
API
変更
-
PlanetKitCallclass 1-to-1 call以前のバージョン PlanetKit 6.0.0 void AcceptCall(bool bPreparation, CallStartMessagePtr pCallStartMessage = CallStartMessagePtr(nullptr), EInitialMyVideoState eInitialMyVideoState = PLNK_INITIAL_MY_VIDEO_STATE_RESUME, bool bRecordOnCloud = false)void AcceptCall(bool bPreparation, CallStartMessageOptional pCallStartMessage = NullOptional, EInitialMyVideoState eInitialMyVideoState = PLNK_INITIAL_MY_VIDEO_STATE_RESUME, bool bRecordOnCloud = false)bool RegisterCallEvent(ICallEvent *pCallEvent)bool RegisterCallEvent(ICallEventPtr pCallEvent)bool MakeOutboundDataSession(int nStreamId, EDataSessionType eType, NULLABLE void* pResultUserData, IOutboundDataSessionHandler* pDataSessionHandler)bool MakeOutboundDataSession(int nStreamId, EDataSessionType eType, NULLABLE void* pResultUserData, IOutboundDataSessionHandlerPtr pDataSessionHandler)bool MakeInboundDataSession(int nStreamId, NULLABLE void* pResultUserData, IInboundDataSessionHandler* pDataSessionHandler)bool MakeInboundDataSession(int nStreamId, NULLABLE void* pResultUserData, IInboundDataSessionHandlerPtr pDataSessionHandler)bool RegisterMyAudioReceiver(ICallAudioReceiver *pReceiver)bool RegisterMyAudioReceiver(ICallAudioReceiverPtr pReceiver)bool RegisterPeerAudioReceiver(ICallAudioReceiver *pReceiver)bool RegisterPeerAudioReceiver(ICallAudioReceiverPtr pReceiver)bool DeregisterMyAudioReceiver(ICallAudioReceiver *pReceiver)bool DeregisterMyAudioReceiver(ICallAudioReceiverPtr pReceiver)bool DeregisterPeerAudioReceiver(ICallAudioReceiver *pReceiver)bool DeregisterPeerAudioReceiver(ICallAudioReceiverPtr pReceiver)bool AddMyVideoReceiver(IVideoReceiver* pReceiver)bool AddMyVideoReceiver(IVideoReceiverPtr pReceiver)bool RemoveMyVideoReceiver(IVideoReceiver* pReceiver)bool RemoveMyVideoReceiver(IVideoReceiverPtr pReceiver)bool AddPeerVideoReceiver(IVideoReceiver* pReceiver)bool AddPeerVideoReceiver(IVideoReceiverPtr pReceiver)bool RemovePeerVideoReceiver(IVideoReceiver* pReceiver)bool RemovePeerVideoReceiver(IVideoReceiverPtr pReceiver)bool AddMyScreenShareVideoReceiver(IVideoReceiver* pReceiver)bool AddMyScreenShareVideoReceiver(IVideoReceiverPtr pReceiver)bool RemoveMyScreenShareVideoReceiver(IVideoReceiver* pReceiver)bool RemoveMyScreenShareVideoReceiver(IVideoReceiverPtr pReceiver)bool AddPeerScreenShareVideoReceiver(IVideoReceiver* pReceiver)bool AddPeerScreenShareVideoReceiver(IVideoReceiverPtr pReceiver)bool RemovePeerScreenShareVideoReceiver(IVideoReceiver* pReceiver)bool RemovePeerScreenShareVideoReceiver(IVideoReceiverPtr pReceiver) -
CameraControllerclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 void RegisterDeviceEvent(IVideoCaptureDeviceEvent* pDelegate)void RegisterDeviceEvent(IVideoCaptureDeviceEventPtr pDelegate)void DeregisterDeviceEvent(IVideoCaptureDeviceEvent* pDelegate)void DeregisterDeviceEvent(IVideoCaptureDeviceEventPtr pDelegate)bool StartPreview(IVideoReceiver* pReceiver)bool StartPreview(IVideoReceiverPtr pReceiver)bool StopPreview(IVideoReceiver* pReceiver)bool StopPreview(IVideoReceiverPtr pReceiver)bool RegisterVideoInterceptor(IVideoInterceptor* pInterceptor)bool RegisterVideoInterceptor(IVideoInterceptorPtr pInterceptor) -
PlanetKitConferenceclass Group call以前のバージョン PlanetKit 6.0.0 bool RegisterConferenceEvent(IConferenceEvent *pEvent)bool RegisterConferenceEvent(IConferenceEventPtr pEvent)bool RegisterMyAudioReceiver(IConferenceAudioReceiver *pReceiver)bool RegisterMyAudioReceiver(IConferenceAudioReceiverPtr pReceiver)bool RegisterPeersAudioReceiver(IConferenceAudioReceiver *pReceiver)bool RegisterPeersAudioReceiver(IConferenceAudioReceiverPtr pReceiver)bool DeregisterMyAudioReceiver(IConferenceAudioReceiver *pReceiver)bool DeregisterMyAudioReceiver(IConferenceAudioReceiverPtr pReceiver)bool DeregisterPeersAudioReceiver(IConferenceAudioReceiver *pReceiver)bool DeregisterPeersAudioReceiver(IConferenceAudioReceiverPtr pReceiver)bool AddMyVideoReceiver(IVideoReceiver* pReceiver)bool AddMyVideoReceiver(IVideoReceiverPtr pReceiver)bool RemoveMyVideoReceiver(IVideoReceiver* pReceiver)bool RemoveMyVideoReceiver(IVideoReceiverPtr pReceiver)bool AddPeerVideoReceiver(UserIdPtr pPeerID, IVideoReceiver* pReceiver)bool AddPeerVideoReceiver(UserIdPtr pPeerID, IVideoReceiverPtr pReceiver)bool RemovePeerVideoReceiver(IVideoReceiver* pReceiver)bool RemovePeerVideoReceiver(IVideoReceiverPtr pReceiver)bool AddMyScreenShareVideoReceiver(IVideoReceiver* pReceiver)bool AddMyScreenShareVideoReceiver(IVideoReceiverPtr pReceiver)bool RemoveMyScreenShareVideoReceiver(IVideoReceiver* pReceiver)bool RemoveMyScreenShareVideoReceiver(IVideoReceiverPtr pReceiver)bool AddPeerScreenShareVideoReceiver(UserIdPtr pPeerID, IVideoReceiver* pReceiver)bool AddPeerScreenShareVideoReceiver(UserIdPtr pPeerID, IVideoReceiverPtr pReceiver)bool RemovePeerScreenShareVideoReceiver(IVideoReceiver* pReceiver)bool RemovePeerScreenShareVideoReceiver(IVideoReceiverPtr pReceiver) -
Subgroupclass Group call以前のバージョン PlanetKit 6.0.0 bool MakeOutboundDataSession(int nStreamId, EDataSessionType eType, NULLABLE void* pResultUserData, IOutboundDataSessionHandler* pDataSessionHandler)bool MakeOutboundDataSession(int nStreamId, EDataSessionType eType, NULLABLE void* pResultUserData, IOutboundDataSessionHandlerPtr pDataSessionHandler)bool MakeInboundDataSession(int nStreamId, NULLABLE void* pResultUserData, IInboundDataSessionHandler* pDataSessionHandler)bool MakeInboundDataSession(int nStreamId, NULLABLE void* pResultUserData, IInboundDataSessionHandlerPtr pDataSessionHandler) -
ConferenceParamclass Group call以前のバージョン PlanetKit 6.0.0 IConferenceEvent* ConferenceEvent()IConferenceEventPtr ConferenceEvent()void SetConferenceEvent(IConferenceEvent* pEvent)void SetConferenceEvent(IConferenceEventPtr pEvent) -
ContentShareInterfaceclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 bool SetContentShareEvent(IContentShareEvent *pEvent)bool SetContentShareEvent(IContentShareEventPtr pEvent) -
OutboundDataSessionclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 IOutboundDataSessionHandler* GetHandler()IOutboundDataSessionHandlerPtr GetHandler() -
InboundDataSessionclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 IInboundDataSessionHandler* GetReceiver()IInboundDataSessionHandlerPtr GetReceiver() -
MakeCallParamclass 1-to-1 call以前のバージョン PlanetKit 6.0.0 ICallEvent* CallEvent()ICallEventPtr CallEvent()void SetCallEvent(ICallEvent* pEvent)void SetCallEvent(ICallEventPtr pEvent) -
MyMediaStatusclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 bool Register(IMyMediaStatusEvent* pListener)bool Register(IMyMediaStatusEventPtr pListener) -
PeerControlclass Group call以前のバージョン PlanetKit 6.0.0 bool Register(IPeerControlEvent* pEventListener)bool Register(IPeerControlEventPtr pEventListener)void RegisterReceiver(IVideoReceiver* pReceiver)void RegisterReceiver(IVideoReceiverPtr pReceiver)void DeregisterReceiver(IVideoReceiver* pReceiver)void DeregisterReceiver(IVideoReceiverPtr pReceiver)void RegisterScreenShareReceiver(IVideoReceiver* pReceiver)void RegisterScreenShareReceiver(IVideoReceiverPtr pReceiver)void DeregisterScreenShareReceiver(IVideoReceiver* pReceiver)void DeregisterScreenShareReceiver(IVideoReceiverPtr pReceiver) -
ScreenShareControllerclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 bool RegisterCapturerEvent(IVideoCapturerEvent* pDelegate)bool RegisterCapturerEvent(IVideoCapturerEventPtr pDelegate)bool RegisterVideoInterceptor(IVideoInterceptor* pInterceptor)bool RegisterVideoInterceptor(IVideoInterceptorPtr pInterceptor) -
StatisticsAudioSendclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsNetwork* Network()StatisticsNetworkPtr Network() -
StatisticsAudioRecvclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsNetwork* Network()StatisticsNetworkPtr Network() -
StatisticsVideoSendclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsNetwork* Network()StatisticsNetworkPtr Network()StatisticsVideo* Video()StatisticsVideoPtr Video() -
StatisticsVideoRecvclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsNetwork* Network()StatisticsNetworkPtr Network()StatisticsVideo* Video()StatisticsVideoPtr Video() -
StatisticsScreenShareSendclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsNetwork* Network()StatisticsNetworkPtr Network()StatisticsVideo* Video()StatisticsVideoPtr Video() -
StatisticsScreenShareRecvclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsNetwork* Network()StatisticsNetworkPtr Network()StatisticsVideo* Video()StatisticsVideoPtr Video() -
Statisticsclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsAudioSend* AudioSend()StatisticsAudioSendPtr AudioSend()StatisticsAudioRecv* AudioRecv()StatisticsAudioRecvPtr AudioRecv() -
VerifyCallParamclass 1-to-1 call以前のバージョン PlanetKit 6.0.0 ICallEvent* CallEvent()ICallEventPtr CallEvent()void SetCallEvent(ICallEvent* pEvent)void SetCallEvent(ICallEventPtr pEvent) -
VideoRenderclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 bool RegisterRenderEvent(IVideoRenderEvent *pDelegate)bool RegisterRenderEvent(IVideoRenderEventPtr pDelegate)
追加
SharedPtrclass 1-to-1 callGroup call
サンプルコード
// Initialize the variable to nullptr.
PlanetKit::SharedPtr<YourCallEvent> callEvent = nullptr;
// Create an instance using MakeAutoPtr.
callEvent = PlanetKit::MakeAutoPtr<YourCallEvent>();
// Use SharedPtr::hasValue() to determine the existence of an instance.
if(callEvent.hasValue() == true) {
...
}
// If the instance is no longer needed, assign nullptr to reduce the reference count.
callEvent = nullptr;
マイグレーション
-
バージョン 5.5以下では、
newを使用してイベントクラスのインスタンスを作成して登録していました。 -
バージョン6.0からは、
PlanetKit::SharedPtrが提供されるため、PlanetKit::MakeAutoPtr()を使用する必要があります。 -
バージョン5.5以下でイベントクラスを作成して管理する方法は、次のとおりです。
class YourCallEvent : public PlanetKit::ICallEvent {
public :
YourCallEvent (int someParameter1, int someParameter2) {
...
}
...
};
class YourCall {
public:
void InitializeCallEvent() {
m_yourCallEvent = new YourCallEvent(1, 2);
}
void FinalizeCallEvent() {
// Since the pointer has been deallocated from memory, any code referencing the same pointer may cause an exception.
delete m_yourCallEvent;
}
private: YourCallEvent* m_yourCallEvent = nullptr;
}; -
バージョン6.0からイベントクラスを作成して管理する方法は、次のとおりです:
class YourCallEvent : public PlanetKit::ICallEvent {
public :
YourCallEvent (int someParameter1, int someParameter2) {
...
}
...
};
class YourCall {
public:
void InitializeCallEvent() {
m_yourCallEvent = PlanetKit::MakeAutoPtr<YourCallEvent>(1, 2);
}
void FinalizeCallEvent() {
// If the pointer is no longer in use, you can assign nullptr to reduce the reference count of the SharedPtr.
m_yourCallEvent = nullptr;
}
private:
PlanetKit::SharedPtr<YourCallEvent> m_yourCallEvent = nullptr;
};
MakeCall()、VerifyCall()、JoinConference()にマイク設定を追加
MakeCall()、VerifyCall()、JoinConference()にMicOptionalパラメーターが追加されました。- このパラメーターが
PlanetKit::NullOptionalに設定されると、マイクデバイスなしで通話が繋がります。 - マイクデバイスが引数として引き渡されると、該当マイクを使用して通話が繋がります。
API
変更
-
PlanetKitManagerclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 SStartResult MakeCall(MakeCallParamPtr pParam, PlanetKitCallPtr* pPlanetKitCall)SStartResult MakeCall(MakeCallParamPtr pParam, MicOptional micOptional, PlanetKitCallPtr* pPlanetKitCall)SStartResult VerifyCall(VerifyCallParamPtr pParam, PlanetKitCallPtr* pPlanetKitCall)SStartResult VerifyCall(VerifyCallParamPtr pParam, MicOptional micOptional, PlanetKitCallPtr* pPlanetKitCall)SStartResult JoinConference(ConferenceParamPtr pConferenceParam, PlanetKitConferencePtr& pPlanetKitConference)SStartResult JoinConference(ConferenceParamPtr pConferenceParam, MicOptional micOptional, PlanetKitConferencePtr& pPlanetKitConference)
サンプルコード
-
特定のマイクデバイスを使用する例
auto planetkitManager = PlanetKit::PlanetKitManager::GetInstance();
auto audioManager = planetkitManager->GetAudioManager();
auto mic = audioManager->ChangeMic(MicInfo);
planetkitManager->JoinConference(pJoinParam, mic, pConference); -
マイクデバイスを使用しない例
auto planetkitManager = PlanetKit::PlanetKitManager::GetInstance();
planetkitManager->JoinConference(pJoinParam, PlanetKit::NullOptional, pConference);
ピアのオーディオボリューム設定APIの改善
- サブグループ基盤のボリューム設定の代わりに、ピアごとにボリューム設定APIを使用するように変更しました。
API
変更
-
PeerControlclass Group call以前のバージョン PlanetKit 6.0.0 bool SetPeerAudioVolumeLevelSetting(UserIdPtr pPeerId, bool bSetForAllSubgroups, const WStringOptional& strSubgroupNameToApply, unsigned char ucVolume, void* pUserData = nullptr, ResultCallback pCallback = nullptr)bool SetVolumeLevelSetting(unsigned char ucVolume, void* pUserData = nullptr, ResultCallback pCallback = nullptr) -
Peerclass Group call以前のバージョン PlanetKit 6.0.0 VolumeResult GetAudioVolumeLevelSetting(const WStringOptional& strSubgroupName = NullOptional)VolumeResult GetAudioVolumeLevelSetting()
削除
SubgroupManagerclass Group callvoid bool SetPeerAudioVolumeLevelSetting(UserIdPtr pPeerId, bool bSetForAllSubgroups, const WStringOptional& strSubgroupNameToApply, unsigned char ucVolume, void* pUserData = nullptr, ResultCallback pCallback = nullptr)
ビデオ性能の設定APIの変更
- ビデオ性能の設定APIでサムネイル解像度はサポートされなくなりました。
- ビデオハードウェアコーデックの設定は、これにより各1対1通話のパラメーター、またはグループ通話パラメーターごとに設定する代わりに
PlanetKitManagerを通じて設定します。
API
変更
-
SVideoCapabilitystruct 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 EVideoResolution eMaxResolutionEVideoResolutionCapability eMaxVideoResolutionCapability -
MakeCallParamclass 1-to-1 call以前のバージョン PlanetKit 6.0.0 const SVideoCapability& RecvVideoCapability()const VideoCapabilityOptional RecvVideoCapability()const SVideoCapability& SendVideoCapability()const VideoCapabilityOptional SendVideoCapability() -
VerifyCallParamclass 1-to-1 call以前のバージョン PlanetKit 6.0.0 const SVideoCapability& RecvVideoCapability()const VideoCapabilityOptional RecvVideoCapability()const SVideoCapability& SendVideoCapability()const VideoCapabilityOptional SendVideoCapability() -
ConferenceParamclass Group call以前のバージョン PlanetKit 6.0.0 const SVideoCapability& RecvVideoCapability()const VideoCapabilityOptional RecvVideoCapability()const SVideoCapability& SendVideoCapability()const VideoCapabilityOptional SendVideoCapability()
追加
EVideoResolutionCapabilityenum 1-to-1 callGroup callPLNK_VIDEO_RESOLUTION_CAPABILITY_QVGA = 1PLNK_VIDEO_RESOLUTION_CAPABILITY_VGA = 2PLNK_VIDEO_RESOLUTION_CAPABILITY_HD = 3PLNK_VIDEO_RESOLUTION_CAPABILITY_FHD = 4
SPreferredHardwareCodecstruct 1-to-1 callGroup callbool bCallVideoSendbool bCallVideoReceivebool bConferenceVideoSendbool bConferenceVideoReceive
PlanetKitManagerclass 1-to-1 callGroup callVideoCapabilityOptional GetCallDeviceDefaultVideoSendCapability()VideoCapabilityOptional GetCallDeviceDefaultVideoReceiveCapability()VideoCapabilityOptional GetConferenceDeviceDefaultVideoSendCapability()VideoCapabilityOptional GetConferenceDeviceDefaultVideoReceiveCapability()void SetPreferredHardwareCodec(SPreferredHardwareCodec sPreferredHardwareCodec)SPreferredHardwareCodec GetPreferredHardwareCodec()
削除
SVideoCapabilitystruct 1-to-1 callGroup callbool bPreferHWCodec
ConferenceParamclass Group callbool UseRxHWVidCodec()void SetUseRxHWVidCodec(bool bUseRxHWVidCodec)
PlanetKitManagerclass 1-to-1 callGroup callbool GetDefaultVideoCapSend(SVideoCapability *pSend)bool GetDefaultVideoCapReceive(SVideoCapability *pReceive)
ビデオ通話を有効化時にレスポンスタイプの設定APIを除去
- これで、1対1音声通話で相手がビデオ通話を有効にすると、ローカルユーザーのビデオが常に一時停止状態に設定されます。
API
変更
-
ICallEventclass 1-to-1 call以前のバージョン PlanetKit 6.0.0 void OnVideoEnabledByPeer(PlanetKitCallPtr pPlanetKitCall, bool bIsSendingMyVideo)void OnVideoEnabledByPeerAndMyVideoPaused(PlanetKitCallPtr pPlanetKitCall)
削除
EResponseOnVideoEnableenum 1-to-1 callMakeCallParamclass 1-to-1 callvoid SetResponseOnVideoEnable(EResponseOnVideoEnable eEnable)EResponseOnVideoEnable ResponseOnVideoEnable()
VerifyCallParamclass 1-to-1 callvoid SetResponseOnVideoEnable(EResponseOnVideoEnable eEnable)EResponseOnVideoEnable ResponseOnVideoEnable()
マイグレーション
-
バージョン5.5以下では、
SetResponseOnVideoEnable()を使用して相手がビデオ通話をリクエストするときの動作を決めることができました。EResponseOnVideoEnable::PAUSEに設定すると、ビデオ通話への切り替え時にローカルユーザーのビデオ状態が一時停止に変更され、ビデオが送信されませんでした。EResponseOnVideoEnable::SENDに設定すると、ビデオ通話への切り替え時にローカル ユーザーのビデオが送信されました。
-
バージョン6.0から関連APIが削除されました。ビデオ通話に切り替えると、ローカルユーザーのビデオ状態は一時停止に変更され、ビデオは送信されません。
-
バージョン5.5以下では、一時停止/送信オプションを次のように設定できました。
void SetResponseOnVideoEnableSend(PlanetKit::MakeCallParamPtr pCallParam) {
pCallParam->SetResponseOnVideoEnable(EResponseOnVideoEnable::SEND);
}
void SetResponseOnVideoEnablePause(PlanetKit::MakeCallParamPtr pCallParam) {
pCallParam->SetResponseOnVideoEnable(EResponseOnVideoEnable::PAUSE);
}
void MakeCall(PlanetKit::MakeCallParamPtr pCallParam) {
SetResponseOnVideoEnableSend(pCallParam);
auto planetkitManager = PlanetKit::PlanetKitManager::GetInstance();
PlanetKit::PlanetKitCallPtr pCall;
planetkitManager->MakeCall(pCall, pCallParam);
}
...
// It is possible to know whether video is being sent to the peer at the time of switching to a video call through an event.
void OnVideoEnabledByPeer(PlanetKit::PlanetKitCallPtr pPlanetKitCall, bool bIsSendingMyVideo) {
// If bIsSendingMyVideo is false, it is in a pause state.
} -
バージョン6.0からは、ビデオ通話に切り替えると、常に一時停止状態で開始されます。
void MakeCall(PlanetKit::MakeCallParamPtr pCallParam, PlanetKit::MicPtr pMic) {
auto planetkitManager = PlanetKit::PlanetKitManager::GetInstance();
PlanetKit::PlanetKitCallPtr pCall;
planetkitManager->MakeCall(pCall, pMic, pCallParam);
}
...
// The event allows determining the moment of switching to a video call.
void OnVideoEnabledByPeerAndMyVideoPaused(PlanetKit::PlanetKitCallPtr pPlanetKitCall) {
}
CameraControllerのAPI名変更
- API名を変更しました。
API
変更
-
CameraControllerclass 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 EVideoControlResult SelectCamera(CameraInfoPtr pCameraInfo)EVideoControlResult ChangeCamera(CameraInfoPtr pCameraInfo)