リリースノート
Windows向けPlanetKit 6.0のリリースノートです。
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
変更
-
AudioManager
class 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()
追加
AudioManager
class 1-to-1 callGroup callMicOptional ChangeMic(AudioDeviceInfoPtr pInfo = nullptr)
SpeakerOptional ChangeSpeaker(AudioDeviceInfoPtr pInfo = nullptr)
bool RegisterMicExceptionEvent(MicExceptionEventPtr pMicExceptionEvent)
bool DeregisterMicExceptionEvent()
削除
AudioManager
class 1-to-1 callGroup callAudioDevicePtr CreateAudioDevice(AudioDeviceInfoPtr pInfo)
AudioDevicePtr CreateDefaultInputDevice()
AudioDevicePtr CreateDefaultOutputDevice()
PlanetKitCall
class 1-to-1 callbool SetAudioInputDevice(AudioDevicePtr pDevice)
bool SetAudioOutputDevice(AudioDevicePtr pDevice)
MakeCallParam
class 1-to-1 callAudioDeviceOptional GetAudioInputDevice()
AudioDeviceOptional GetAudioOutputDevice()
void SetAudioInputDevice(AudioDevicePtr pDevice)
void SetAudioOutputDevice(AudioDevicePtr pDevice)
VerifyCallParam
class 1-to-1 callAudioDeviceOptional GetAudioInputDevice()
AudioDeviceOptional GetAudioOutputDevice()
void SetAudioInputDevice(AudioDevicePtr pDevice)
void SetAudioOutputDevice(AudioDevicePtr pDevice)
PlanetKitConference
class Group callbool SetAudioInputDevice(AudioDevicePtr pDevice)
bool SetAudioOutputDevice(AudioDevicePtr pDevice)
ConferenceParam
class 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
追加
AudioManager
class 1-to-1 callGroup callSpeakerOptional GetCurrentSpeaker()
MicOptional GetCurrentMic()
Mic
class 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()
Speaker
class 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()
IAudioVolumeLevelChangedEvent
class 1-to-1 callGroup callvoid OnNotify(const AudioDeviceInfoPtr pAudioInfo, const SAudioEndpointVolumeInfo& sInfo)
IMicEvent
class 1-to-1 callGroup callbool DidCapture(const SAudioData& sAudioData)
EMicStartError
enum 1-to-1 callGroup callPLNK_MIC_START_ERROR_INTERNAL_REASON
PLNK_MIC_START_ERROR_NOT_ENOUGH_MEMORY
PLNK_MIC_START_ERROR_DEVICE_INVALID
PLNK_MIC_START_ERROR_AUDIO_SERVICE_NOT_RUNNING
PLNK_MIC_START_ERROR_DEVICE_IN_USE_EXCLUSIVE_BY_OTHER_APPLICATION
PLNK_MIC_START_ERROR_CPU_USAGE_EXCEEDED
PLNK_MIC_START_ERROR_PREVIEW_EVENT_NOT_VALID
IMicExceptionEvent
class 1-to-1 callGroup callvoid OnMicStartError(EMicStartError eMicrophoneStartError)
IMicPreviewEvent
class 1-to-1 callGroup callvoid OnMicPreviewVolume(float fVolume)
ISpeakerEvent
class 1-to-1 callGroup callbool WillPlay(SAudioData& sAudioData)
削除
AudioDevice
class 1-to-1 callGroup callIAudioDeviceVolumeChangedEvent
class 1-to-1 callGroup callIAudioDeviceInputDelegate
class 1-to-1 callGroup callIAudioDeviceOutputDelegate
class 1-to-1 callGroup call
マイク確認用プレビュー機能の追加
- 「プレビュー」とは、現在のマイクデバイスのボリュームを周期的に確認するイベントを意味します。
- プレビューイベントを登録できる機能を追加しました。
API
追加
AudioManager
class 1-to-1 callGroup callbool bool StartMicPreview(MicPreviewEventPtr pMicPreviewEvent, unsigned int unInterval)
bool StopMicPreview()
カスタムオーディオの提供
- ユーザーが直接作成できるカスタムオーディオ機能を追加しました。
API
追加
CustomMic
class 1-to-1 callGroup callbool PutAudioData(SAudioData& audioData)
CustomSpeaker
class 1-to-1 callGroup callbool PullAudioData(SAudioData& audioData)
通話受信中にクラウド通話録音の有効化の可否確認機能を追加
PlanetKitCCParam
に通話受信中にクラウド通話録音が有効になっているかどうかを確認できるパラメーターを追加しました。
API
追加
CCParam
class 1-to-1 callbool IsRecordOnCloudEnabled()
バーチャル背景機能の提供
- バーチャル背景機能を追加しました。
API
追加
EVirtualBackgroundType
enum 1-to-1 callGroup callPLNK_VIRTUAL_BACKGROUND_TYPE_NONE
PLNK_VIRTUAL_BACKGROUND_TYPE_BLUR
PLNK_VIRTUAL_BACKGROUND_TYPE_IMAGE
Image
class 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()
CameraController
class 1-to-1 callGroup callbool SetVirtualBackgroundWithBlur(float fBlurRadius)
bool SetVirtualBackgroundWithImage(ImagePtr pImage)
void ClearVirtualBackground()
EVirtualBackgroundType GetCurrentVirtualBackgroundType()
メモリー管理のためのSharedPtr
提供
- メモリー管理を簡単にできるようにする
SharedPtr
を追加しました。
API
変更
-
PlanetKitCall
class 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)
-
CameraController
class 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)
-
PlanetKitConference
class 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)
-
Subgroup
class 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)
-
ConferenceParam
class Group call以前のバージョン PlanetKit 6.0.0 IConferenceEvent* ConferenceEvent()
IConferenceEventPtr ConferenceEvent()
void SetConferenceEvent(IConferenceEvent* pEvent)
void SetConferenceEvent(IConferenceEventPtr pEvent)
-
ContentShareInterface
class 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 bool SetContentShareEvent(IContentShareEvent *pEvent)
bool SetContentShareEvent(IContentShareEventPtr pEvent)
-
OutboundDataSession
class 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 IOutboundDataSessionHandler* GetHandler()
IOutboundDataSessionHandlerPtr GetHandler()
-
InboundDataSession
class 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 IInboundDataSessionHandler* GetReceiver()
IInboundDataSessionHandlerPtr GetReceiver()
-
MakeCallParam
class 1-to-1 call以前のバージョン PlanetKit 6.0.0 ICallEvent* CallEvent()
ICallEventPtr CallEvent()
void SetCallEvent(ICallEvent* pEvent)
void SetCallEvent(ICallEventPtr pEvent)
-
MyMediaStatus
class 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 bool Register(IMyMediaStatusEvent* pListener)
bool Register(IMyMediaStatusEventPtr pListener)
-
PeerControl
class 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)
-
ScreenShareController
class 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)
-
StatisticsAudioSend
class 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsNetwork* Network()
StatisticsNetworkPtr Network()
-
StatisticsAudioRecv
class 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsNetwork* Network()
StatisticsNetworkPtr Network()
-
StatisticsVideoSend
class 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsNetwork* Network()
StatisticsNetworkPtr Network()
StatisticsVideo* Video()
StatisticsVideoPtr Video()
-
StatisticsVideoRecv
class 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsNetwork* Network()
StatisticsNetworkPtr Network()
StatisticsVideo* Video()
StatisticsVideoPtr Video()
-
StatisticsScreenShareSend
class 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsNetwork* Network()
StatisticsNetworkPtr Network()
StatisticsVideo* Video()
StatisticsVideoPtr Video()
-
StatisticsScreenShareRecv
class 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsNetwork* Network()
StatisticsNetworkPtr Network()
StatisticsVideo* Video()
StatisticsVideoPtr Video()
-
Statistics
class 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 StatisticsAudioSend* AudioSend()
StatisticsAudioSendPtr AudioSend()
StatisticsAudioRecv* AudioRecv()
StatisticsAudioRecvPtr AudioRecv()
-
VerifyCallParam
class 1-to-1 call以前のバージョン PlanetKit 6.0.0 ICallEvent* CallEvent()
ICallEventPtr CallEvent()
void SetCallEvent(ICallEvent* pEvent)
void SetCallEvent(ICallEventPtr pEvent)
-
VideoRender
class 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 bool RegisterRenderEvent(IVideoRenderEvent *pDelegate)
bool RegisterRenderEvent(IVideoRenderEventPtr pDelegate)
追加
SharedPtr
class 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
変更
-
PlanetKitManager
class 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
変更
-
PeerControl
class 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)
-
Peer
class Group call以前のバージョン PlanetKit 6.0.0 VolumeResult GetAudioVolumeLevelSetting(const WStringOptional& strSubgroupName = NullOptional)
VolumeResult GetAudioVolumeLevelSetting()
削除
SubgroupManager
class 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
変更
-
SVideoCapability
struct 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 EVideoResolution eMaxResolution
EVideoResolutionCapability eMaxVideoResolutionCapability
-
MakeCallParam
class 1-to-1 call以前のバージョン PlanetKit 6.0.0 const SVideoCapability& RecvVideoCapability()
const VideoCapabilityOptional RecvVideoCapability()
const SVideoCapability& SendVideoCapability()
const VideoCapabilityOptional SendVideoCapability()
-
VerifyCallParam
class 1-to-1 call以前のバージョン PlanetKit 6.0.0 const SVideoCapability& RecvVideoCapability()
const VideoCapabilityOptional RecvVideoCapability()
const SVideoCapability& SendVideoCapability()
const VideoCapabilityOptional SendVideoCapability()
-
ConferenceParam
class Group call以前のバージョン PlanetKit 6.0.0 const SVideoCapability& RecvVideoCapability()
const VideoCapabilityOptional RecvVideoCapability()
const SVideoCapability& SendVideoCapability()
const VideoCapabilityOptional SendVideoCapability()
追加
EVideoResolutionCapability
enum 1-to-1 callGroup callPLNK_VIDEO_RESOLUTION_CAPABILITY_QVGA = 1
PLNK_VIDEO_RESOLUTION_CAPABILITY_VGA = 2
PLNK_VIDEO_RESOLUTION_CAPABILITY_HD = 3
PLNK_VIDEO_RESOLUTION_CAPABILITY_FHD = 4
SPreferredHardwareCodec
struct 1-to-1 callGroup callbool bCallVideoSend
bool bCallVideoReceive
bool bConferenceVideoSend
bool bConferenceVideoReceive
PlanetKitManager
class 1-to-1 callGroup callVideoCapabilityOptional GetCallDeviceDefaultVideoSendCapability()
VideoCapabilityOptional GetCallDeviceDefaultVideoReceiveCapability()
VideoCapabilityOptional GetConferenceDeviceDefaultVideoSendCapability()
VideoCapabilityOptional GetConferenceDeviceDefaultVideoReceiveCapability()
void SetPreferredHardwareCodec(SPreferredHardwareCodec sPreferredHardwareCodec)
SPreferredHardwareCodec GetPreferredHardwareCodec()
削除
SVideoCapability
struct 1-to-1 callGroup callbool bPreferHWCodec
ConferenceParam
class Group callbool UseRxHWVidCodec()
void SetUseRxHWVidCodec(bool bUseRxHWVidCodec)
PlanetKitManager
class 1-to-1 callGroup callbool GetDefaultVideoCapSend(SVideoCapability *pSend)
bool GetDefaultVideoCapReceive(SVideoCapability *pReceive)
ビデオ通話を有効化時にレスポンスタイプの設定APIを除去
- これで、1対1音声通話で相手がビデオ通話を有効にすると、ローカルユーザーのビデオが常に一時停止状態に設定されます。
API
変更
-
ICallEvent
class 1-to-1 call以前のバージョン PlanetKit 6.0.0 void OnVideoEnabledByPeer(PlanetKitCallPtr pPlanetKitCall, bool bIsSendingMyVideo)
void OnVideoEnabledByPeerAndMyVideoPaused(PlanetKitCallPtr pPlanetKitCall)
削除
EResponseOnVideoEnable
enum 1-to-1 callMakeCallParam
class 1-to-1 callvoid SetResponseOnVideoEnable(EResponseOnVideoEnable eEnable)
EResponseOnVideoEnable ResponseOnVideoEnable()
VerifyCallParam
class 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
変更
-
CameraController
class 1-to-1 callGroup call以前のバージョン PlanetKit 6.0.0 EVideoControlResult SelectCamera(CameraInfoPtr pCameraInfo)
EVideoControlResult ChangeCamera(CameraInfoPtr pCameraInfo)