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

リリースノート

Windows向けPlanetKit 7.0のリリースノートです。

PlanetKit 7.0

リリース日:2026-04-24

ロギングパスとレベル設定の統合

Configurationのロギングとパス設定APIを統合して簡素化しました。

  • これにより、Create()メソッドはベースパスとデータベースパスを別々に受け取る代わりに、strPlanetKitSystemDirectoryパラメーター1つを受け取ります。
  • ロギング設定時に使用していた複数のセッターメソッド(SetLogLevelSetLogSizeLimitEnableLogOutput)を削除し、代わりにサイズ制限のロギングとサイズ無制限ロギングのための2つのEnableLog()メソッドを追加しました。
  • この変更により、PlanetKitで設定ファイルパスとログファイルパスの区別がより明確になりました。

API

変更
  • Configuration class 1-to-1 callGroup call

    以前のバージョンPlanetKit 7.0.0
    ConfigurationPtr Create(const WString& strBasePath, const WString& strDatabasePath)ConfigurationPtr Create(const WString& strPlanetKitSystemDirectory)
追加
  • Configuration class 1-to-1 callGroup call
    • void EnableLog(const WString& strLogDirectory, ELogLevel eLogLevel = ELogLevel::PLNK_LOG_SIMPLE, ELogSizeLimit eLogSizeLimit = ELogSizeLimit::PLNK_LOG_SIZE_LIMIT_LARGE)
    • void EnableLog(const WString& strLogDirectory, WStringOptional strLogFileName, ELogLevel eLogLevel = ELogLevel::PLNK_LOG_SIMPLE)
    • const WString& GetPlanetKitSystemDirectory()
削除
  • Configuration class 1-to-1 callGroup call
    • void SetLogLevel(ELogLevel eLogLevel)
    • void SetLogSizeLimit(ELogSizeLimit eLogSizeLimit)
    • void EnableLogOutput(bool bEnable)
    • const WString& GetBasePath()
    • const WString& GetDatabasePath()
    • ELogLevel GetLogLevel()
    • ELogSizeLimit GetLogSizeLimit()
    • bool IsLogOutputEnabled()
  • ELogLevel enum 1-to-1 callGroup call
    • PLNK_LOG_SILENT
  • ELogSizeLimit enum 1-to-1 callGroup call
    • PLNK_LOG_SIZE_LIMIT_UNLIMITED

マイグレーション

  • Configuration作成時に使用していたstrBasePathパラメーターをstrPlanetKitSystemDirectoryに変更してください。
  • strDatabasePathパラメーターはPlanetKitロギングを有効にするとき、EnableLogAPIのstrLogDirectoryパラメーターとして使用されます。
void InitializePlanetKit() {
auto pConfiguration = PlanetKit::Configuration::Create(L"specific_planetkit_directory");

// Call to enable logging
pConfiguration->EnableLog(L"planetkit_log_directory");

PlanetKit::PlanetKitManager::Initialize(pConfiguration);
}

カスタムビデオソース機能の追加

ユーザーは自分のビデオをカスタムビデオソースに置き換えることができます。詳細は、カスタムビデオソースを参照してください。

API

追加
  • CustomCamera class 1-to-1 callGroup call

    • void OnStart()
    • void OnStop()
  • CameraController class 1-to-1 callGroup call

    • bool ChangeCamera(CustomCameraPtr pCustomCamera)

サンプルコード

CustomCameraクラスを継承してカスタムビデオソースを実装します。ビデオが始まるとCustomCamera::OnStart()コールバックが呼び出され、停止するとCustomCamera::OnStop()コールバックが呼び出されます。

class YourCustomCamera : public PlanetKit::CustomCamera {
public:
void OnStart() override {
// start custom video source thread
m_videoThread = std::thread(& CustomVideoSource::VideoThreadProc, this);
}

void OnStop() override {
// stop custom video source thread
m_bRunning = false;

if (m_videoThread.joinable()) {
m_videoThread.join();
}
}

void VideoThreadProc() {
m_bRunning = true;

const auto frameInterval = std::chrono::milliseconds(66); // ~15fps (1000ms / 15 = 66.67ms)
while(m_bRunning) {
// read from file
PlanetKit::SVideoFrame sVideoFrame;

// Tickcount as microseconds
sVideoFrame.llTick = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::steady_clock::now().time_since_epoch()).count();

this->WriteFrameData(sVideoFrame);
// Maintain 15fps timing
std::this_thread::sleep_for(frameInterval);
}
}

private:
std::thread m_videoThread;
std::atomic<bool> m_bRunning = false;
};

実装したCustomCameraクラスのインスタンスを設定するには、CameraControllerクラスのChangeCamera APIを使用してください。

PlanetKitが提供するカメラに切り替えるには、EVideoControlResult CameraController::ChangeCamera(CameraInfoPtr pCameraInfo)を呼び出します。

class YourCameraManager {
// Custom Video Source
void ChangeCustomVideoSource() {
PlanetKit::CameraControllerPtr pCameraController = PlanetKit::PlanetKitManager()::GetInstance()->GetCameraController();
pCameraController->ChangeCamera(m_pYourCustomCamera);
}

// Change Camera Device
void ChangeCamera() {
PlanetKit::CameraControllerPtr pCameraController = PlanetKit::PlanetKitManager()::GetInstance()->GetCameraController();

PlanetKit::CameraInfoArray aCameraInfos;
pCameraController->GetCapturerInfo(aCameraInfos);

pCameraController->ChangeCamera(aCameraInfos.GetAt(0));
}

// Deselect Camera
void DeselectCamera() {
PlanetKit::CameraControllerPtr pCameraController = PlanetKit::PlanetKitManager()::GetInstance()->GetCameraController();
pCameraController->ChangeCamera(nullptr);
}

private:
PlanetKit::CustomCameraPtr m_pYourCustomCamera = PlanetKit::MakeAutoPtr<YourCustomCamera>();
}

グループ通話で画面共有中止の理由を追加

  • グループ通話で画面共有が中止になった理由を確認できるAPIを追加しました。
    • IPeerControlEvent::OnScreenShareUpdatednDisabledReasonパラメーターを追加しました。
    • IConferenceEvent::OnPeerScreenShareUpdatedのパラメーターであるConferencePeerScreenShareUpdatedParamGetDisabledReason()を追加しました。
  • これにより、アプリケーションでユーザーに画面共有が中止となった理由をより詳細に提供でき、さまざまな終了状況を適切に処理する際の参考にできます。

API

変更
  • IPeerControlEvent class Group call

    以前のバージョンPlanetKit 7.0.0
    void OnScreenShareUpdated(PeerControlPtr pPeerControl, SubgroupPtr pSubgroup, EScreenShareState eState)void OnScreenShareUpdated(PeerControlPtr pPeerControl, SubgroupPtr pSubgroup, EScreenShareState eState, IntOptional nDisabledReason)
追加
  • PlanetKitConference class Group call
    • bool StopMyScreenShare(int nUserReason, void* pUserData = nullptr, ResultCallback pCallback = nullptr)
  • ConferencePeerScreenShareUpdatedParam class Group call
    • IntOptional GetDisabledReason()

通訳者向けの音量調整フィルターモード追加

音量調整フィルターのデフォルトモードであるPLNK_AUTO_GAIN_CONTROL_TYPE_HARDWAREで発生する問題を解決するために新しいモード(PLNK_AUTO_GAIN_CONTROL_TYPE_HARDWARE_ECHO_TOLERANCE)を追加しました。

  • 通訳ルームで通訳者は、通常、他の参加者の発言を聞きながら同時に発言します。このように同時に話す(double talk)状況はエコー環境として検出されるため、マイク音量が小さくても音量調整フィルター(auto gain control)が音量を上げません。このため、通訳者のマイク音量が特定レベル以下の場合、音量が上がらない問題がありました。
  • これを解決するために、エコー環境でもマイク音量を上げることができるPLNK_AUTO_GAIN_CONTROL_TYPE_HARDWARE_ECHO_TOLERANCEモードを追加しました。このモードを使用すると、同時に話す状況でも通訳者の声が明確に伝わります。

サンプルコード

ユーザーの役割が通訳者の場合は、PLNK_AUTO_GAIN_CONTROL_TYPE_HARDWARE_ECHO_TOLERANCEモードを設定してください。

class YourConference {
public:
void SetAutoGainControlModeForTranslator() {
PlanetKit::SendVoiceProcessorPtr voiceProcessor = m_pConference->GetSendVoiceProcessor();

voiceProcessor->SetAutoGainControl(
PLNK_AUTO_GAIN_CONTROL_TYPE_HARDWARE_ECHO_TOLERANCE,
nullptr,
[](void* pUserData, bool bSuccess) {
std::wcout << L"AGC configured with result: " << bSuccess << std::endl;
}
);
}

private:
PlanetKit::PlanetKitConferencePtr m_pConference;
};

API

追加
  • EPlanetKitAutoGainControl enum class 1-to-1 callGroup call
    • PLNK_AUTO_GAIN_CONTROL_TYPE_HARDWARE_ECHO_TOLERANCE = 3

APIキーを使用するdeprecated APIの削除

APIキーを使用して通話を開始する機能を削除しました。

API

削除
  • EConnectToken enum 1-to-1 callGroup call
    • API_KEY
    • ACCESS_TOKEN
  • MakeCallParam class 1-to-1 call
    • MakeCallParamPtr CreateWithAPIKey(UserIdPtr pMyID, UserIdPtr pPeerID, const WString& strKey)
    • const WString& APIKey()
    • EConnectToken ConnectToken()
  • ConferenceParam class Group call
    • ConferenceParamPtr CreateWithAPIKey(UserIdPtr pMyID, const WString& strRoomID, const WString& strRoomServiceID, const WString& strAPIKey)
    • const WString& GetAPIKey()
    • EConnectToken ConnectToken()

ピアのビデオまたは画面共有リクエストのためのdeprecated APIの削除

PlanetKitConferenceクラスで参加者のビデオと画面共有を開始する機能を削除しました。今後は、PeerControlクラスで提供するStartVideo()StartScreenShare()メソッドを使用してください。

API

削除
  • PlanetKitConference class Group call
    • bool RequestPeerVideo(UserIdPtr pPeerId, const WStringOptional& strSubgroupName, EVideoResolution eVideoResolution)
    • bool RequestPeerVideo(UserIdPtr pPeerId, const WStringOptional& strSubgroupName, EVideoResolution eVideoResolution, void* pUserData, RequestPeerVideoResultCallback pCallback)
    • bool RequestPeerVideo(UserIdPtr pPeerId, const WStringOptional& strSubgroupName, EVideoResolution eVideoResolution, void* pUserData, RequestPeerVideoResolutionCallback pCallback)
    • bool StopPeerVideo(UserIdPtr pPeerId, const WStringOptional& strSubgroupName, void* pUserData = nullptr, RequestPeerVideoResultCallback pCallback = nullptr)
    • bool RequestPeerScreenShare(UserIdPtr pPeerId, const WStringOptional& strSubgroupName, void* pUserData, RequestPeerVideoResultCallback pCallback)
    • bool StopPeerScreenShare(UserIdPtr pPeerId, const WStringOptional& strSubgroupName, void* pUserData, RequestPeerVideoResultCallback pCallback)

設定用未対応APIの削除

  • オーディオ/ビデオ入力ソースがない場合に通話を終了するタイムアウト設定関連APIをMakeCallParamVerifyCallParamConferenceParamから削除しました。
  • その値はPlanet Cloudを通じて設定されるため、これに関連する設定APIを削除しました。

API

削除
  • MakeCallParam class 1-to-1 call
    • int GetAudioInputNoSrcTimeOutSec()
    • int GetVideoInputNoSrcTimeOutSec()
    • void SetAudioInputNoSrcTimeOutSec(unsigned int nAudioInputNoSrcTimeOutSec)
    • void SetVideoInputNoSrcTimeOutSec(unsigned int nVideoInputNoSrcTimeOutSec)
  • VerifyCallParam class 1-to-1 call
    • int GetAudioInputNoSrcTimeOutSec()
    • int GetVideoInputNoSrcTimeOutSec()
    • void SetAudioInputNoSrcTimeOutSec(unsigned int nAudioInputNoSrcTimeOutSec)
    • void SetVideoInputNoSrcTimeOutSec(unsigned int nVideoInputNoSrcTimeOutSec)
  • ConferenceParam class Group call
    • int GetAudioInputNoSrcTimeOutSec()
    • int GetVideoInputNoSrcTimeOutSec()
    • void SetAudioInputNoSrcTimeOutSec(unsigned int nAudioInputNoSrcTimeOutSec)
    • void SetVideoInputNoSrcTimeOutSec(unsigned int nVideoInputNoSrcTimeOutSec)

短いデータ転送に詳細なエラー報告機能を追加

1対1通話とグループ通話の両方で、SendShortDataに包括的な失敗理由の報告機能を追加しました。

  • 新しいESendShortDataFailReason enumは、開発者がさまざまな失敗シナリオをより効果的に識別し、処理できるように具体的なエラーコードを提供します。
  • 従来の汎用ResultCallbackを詳細な失敗情報を含む専用のSendShortDataResultHandlerに置き換えました。
  • 短いデータ転送機能を使用する際に、この機能を利用してエラー処理、デバッグ、情報提供機能を改善できます。

API

変更
  • PlanetKitCall class 1-to-1 call

    以前のバージョンPlanetKit 7.0.0
    bool SendShortData(const WString &strType, void *pData, unsigned int nSize, void *pUserData=nullptr, ResultCallback pCallback=nullptr)bool SendShortData(const WString &strType, void *pData, unsigned int nSize, void *pUserData=nullptr, SendShortDataResultHandler pHandler=nullptr)
  • PlanetKitConference class Group call

    以前のバージョンPlanetKit 7.0.0
    bool SendShortData(const WString &strType, void *pData, unsigned int nSize, UserIdPtr pPeerId, void *pUserData=nullptr, ResultCallback pCallback=nullptr)bool SendShortData(const WString &strType, void *pData, unsigned int nSize, UserIdPtr pPeerId, void *pUserData=nullptr, SendShortDataResultHandler pHandler=nullptr)
    bool SendShortDataToAllPeers(const WString &strType, void *pData, unsigned int nSize, void *pUserData=nullptr, ResultCallback pCallback=nullptr)bool SendShortDataToAllPeers(const WString &strType, void *pData, unsigned int nSize, void *pUserData=nullptr, SendShortDataResultHandler pHandler=nullptr)
追加
  • SendShortDataResultHandler = void(*)(void* pUserData, bool bSuccess, ESendShortDataFailReason eFailReason)
  • ESendShortDataFailReason enum 1-to-1 callGroup call
    • PLNK_SEND_SHORT_DATA_FAIL_REASON_NONE = 0
    • PLNK_SEND_SHORT_DATA_FAIL_REASON_INVALID_PARAMETER
    • PLNK_SEND_SHORT_DATA_FAIL_REASON_TOO_LONG_DATA_TYPE
    • PLNK_SEND_SHORT_DATA_FAIL_REASON_TOO_LONG_DATA
    • PLNK_SEND_SHORT_DATA_FAIL_REASON_TOO_FREQUENT
    • PLNK_SEND_SHORT_DATA_FAIL_REASON_TIMEOUT

誤字修正

ネーミングルールに合わない、または誤字があったAPIを修正しました。

API

変更
  • SendVoiceProcessor class 1-to-1 callGroup call

    以前のバージョンPlanetKit 7.0.0
    EPlanetkitNoiseSuppressorMode GetNoiseSuppressorMode()EPlanetKitNoiseSuppressorMode GetNoiseSuppressorMode()
    bool SetNoiseSuppressor(EPlanetkitNoiseSuppressorMode ePlanetkitNoiseSuppressorMode=EPlanetkitNoiseSuppressorMode::PLNK_NOISE_SUPPRESSOR_MODE_ENABLE, void *pUserData=nullptr, ResultCallback pCallback=nullptr)bool SetNoiseSuppressor(EPlanetKitNoiseSuppressorMode ePlanetKitNoiseSuppressorMode=EPlanetKitNoiseSuppressorMode::PLNK_NOISE_SUPPRESSOR_MODE_ENABLE, void *pUserData=nullptr, ResultCallback pCallback=nullptr)
  • CallVerifiedParam class 1-to-1 call

    以前のバージョンPlanetKit 7.0.0
    bool IsPeerUsePreparation()bool IsPeerUseResponderPreparation()
  • ECapturerMediaType enum 1-to-1 callGroup call

    以前のバージョンPlanetKit 7.0.0
    PLNK_CAPTURER_TYPE_UnknownPLNK_CAPTURER_TYPE_UNKNOWN
    PLNK_CAPTURER_TYPE_v210PLNK_CAPTURER_TYPE_V210
    PLNK_CAPTURER_TYPE_v216PLNK_CAPTURER_TYPE_V216
    PLNK_CAPTURER_TYPE_v410PLNK_CAPTURER_TYPE_V410
    PLNK_CAPTURER_TYPE_Base_HDCPPLNK_CAPTURER_TYPE_BASE_HDCP
  • MakeCallParam class 1-to-1 call

    以前のバージョンPlanetKit 7.0.0
    void SetPreparation(bool bPreparation)void SetUseResponderPreparation(bool bUseResponderPreparation)
    bool IsPreparation()bool UseResponderPreparation()
  • Enum名の変更

    以前のバージョンPlanetKit 7.0.0
    EPlanetkitNoiseSuppressorModeEPlanetKitNoiseSuppressorMode1対1通話、グループ通話