本文にスキップする
Version: 6.0

リリースノート

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 call
    • MicOptional ChangeMic(AudioDeviceInfoPtr pInfo = nullptr)
    • SpeakerOptional ChangeSpeaker(AudioDeviceInfoPtr pInfo = nullptr)
    • bool RegisterMicExceptionEvent(MicExceptionEventPtr pMicExceptionEvent)
    • bool DeregisterMicExceptionEvent()
削除
  • AudioManager class 1-to-1 callGroup call
    • AudioDevicePtr CreateAudioDevice(AudioDeviceInfoPtr pInfo)
    • AudioDevicePtr CreateDefaultInputDevice()
    • AudioDevicePtr CreateDefaultOutputDevice()
  • PlanetKitCall class 1-to-1 call
    • bool SetAudioInputDevice(AudioDevicePtr pDevice)
    • bool SetAudioOutputDevice(AudioDevicePtr pDevice)
  • MakeCallParam class 1-to-1 call
    • AudioDeviceOptional GetAudioInputDevice()
    • AudioDeviceOptional GetAudioOutputDevice()
    • void SetAudioInputDevice(AudioDevicePtr pDevice)
    • void SetAudioOutputDevice(AudioDevicePtr pDevice)
  • VerifyCallParam class 1-to-1 call
    • AudioDeviceOptional GetAudioInputDevice()
    • AudioDeviceOptional GetAudioOutputDevice()
    • void SetAudioInputDevice(AudioDevicePtr pDevice)
    • void SetAudioOutputDevice(AudioDevicePtr pDevice)
  • PlanetKitConference class Group call
    • bool SetAudioInputDevice(AudioDevicePtr pDevice)
    • bool SetAudioOutputDevice(AudioDevicePtr pDevice)
  • ConferenceParam class Group call
    • AudioDeviceOptional 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 call
    • SpeakerOptional GetCurrentSpeaker()
    • MicOptional GetCurrentMic()
  • Mic class 1-to-1 callGroup call
    • bool 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 call
    • bool 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 call
    • void OnNotify(const AudioDeviceInfoPtr pAudioInfo, const SAudioEndpointVolumeInfo& sInfo)
  • IMicEvent class 1-to-1 callGroup call
    • bool DidCapture(const SAudioData& sAudioData)
  • EMicStartError enum 1-to-1 callGroup call
    • PLNK_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 call
    • void OnMicStartError(EMicStartError eMicrophoneStartError)
  • IMicPreviewEvent class 1-to-1 callGroup call
    • void OnMicPreviewVolume(float fVolume)
  • ISpeakerEvent class 1-to-1 callGroup call
    • bool WillPlay(SAudioData& sAudioData)
削除
  • AudioDevice class 1-to-1 callGroup call
  • IAudioDeviceVolumeChangedEvent class 1-to-1 callGroup call
  • IAudioDeviceInputDelegate class 1-to-1 callGroup call
  • IAudioDeviceOutputDelegate class 1-to-1 callGroup call

マイク確認用プレビュー機能の追加

  • 「プレビュー」とは、現在のマイクデバイスのボリュームを周期的に確認するイベントを意味します。
  • プレビューイベントを登録できる機能を追加しました。

API

追加
  • AudioManager class 1-to-1 callGroup call
    • bool bool StartMicPreview(MicPreviewEventPtr pMicPreviewEvent, unsigned int unInterval)
    • bool StopMicPreview()

カスタムオーディオの提供

  • ユーザーが直接作成できるカスタムオーディオ機能を追加しました。

API

追加
  • CustomMic class 1-to-1 callGroup call
    • bool PutAudioData(SAudioData& audioData)
  • CustomSpeaker class 1-to-1 callGroup call
    • bool PullAudioData(SAudioData& audioData)

通話受信中にクラウド通話録音の有効化の可否確認機能を追加

  • PlanetKitCCParamに通話受信中にクラウド通話録音が有効になっているかどうかを確認できるパラメーターを追加しました。

API

追加
  • CCParam class 1-to-1 call
    • bool IsRecordOnCloudEnabled()

バーチャル背景機能の提供

  • バーチャル背景機能を追加しました。

API

追加
  • EVirtualBackgroundType enum 1-to-1 callGroup call
    • PLNK_VIRTUAL_BACKGROUND_TYPE_NONE
    • PLNK_VIRTUAL_BACKGROUND_TYPE_BLUR
    • PLNK_VIRTUAL_BACKGROUND_TYPE_IMAGE
  • Image class 1-to-1 callGroup call
    • ImageOptional 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 call
    • bool 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 call
    • void 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 eMaxResolutionEVideoResolutionCapability 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 call
    • PLNK_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 call
    • bool bCallVideoSend
    • bool bCallVideoReceive
    • bool bConferenceVideoSend
    • bool bConferenceVideoReceive
  • PlanetKitManager class 1-to-1 callGroup call
    • VideoCapabilityOptional GetCallDeviceDefaultVideoSendCapability()
    • VideoCapabilityOptional GetCallDeviceDefaultVideoReceiveCapability()
    • VideoCapabilityOptional GetConferenceDeviceDefaultVideoSendCapability()
    • VideoCapabilityOptional GetConferenceDeviceDefaultVideoReceiveCapability()
    • void SetPreferredHardwareCodec(SPreferredHardwareCodec sPreferredHardwareCodec)
    • SPreferredHardwareCodec GetPreferredHardwareCodec()
削除
  • SVideoCapability struct 1-to-1 callGroup call
    • bool bPreferHWCodec
  • ConferenceParam class Group call
    • bool UseRxHWVidCodec()
    • void SetUseRxHWVidCodec(bool bUseRxHWVidCodec)
  • PlanetKitManager class 1-to-1 callGroup call
    • bool 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 call
  • MakeCallParam class 1-to-1 call
    • void SetResponseOnVideoEnable(EResponseOnVideoEnable eEnable)
    • EResponseOnVideoEnable ResponseOnVideoEnable()
  • VerifyCallParam class 1-to-1 call
    • void 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)