グループ通話を始める
PlanetKitを使用すると、1対1通話またはグループ通話の音声およびビデオ通話機能をアプリに連携できます。このガイドでは、Windowsアプリでグループ音声通話の実装を開始する方法について説明します。
- より迅速な開発のために、クイックスタートに基づいてアプリを実装できます。
- このガイドでは、アプリケーションフレームワークとしてMFCを使用する例を提供します。
前提条件
- お使いのシステムがシステム要件を満たしていることを確認してください。
- API keyを生成します。詳細については、開発環境を参照してください。
- アクセストークンを作成するアプリサーバーコードを実装します。詳細については、アクセストークンの作成方法を参照してください。
- Visual Studio 2022以降と下記のコンポーネントをインストールします(すでにVisual Studioがインストールされている場合は、[ツール]>[ゲット ツールと機能]に移動してコンポーネントを追加できます)。
- C++によるデスクトップ開発:[ワークロード]タブで、[C++によるデスクトップ開発]を選択します。
- 最新のv143ビルドツール用C++ MFC (x86およびx64):[個別のコンポーネント]タブで、[最新のv143ビルドツール用C++ MFC (x86およびx64)]を選択します。
- PlanetKit WindowsからPlanetKit SDKをダウンロードしてください。
プロジェクトの作成
Visual Studioを開き、次のように新しいプロジェクトを作成します。
- メインメニューから[ファイル]>[新規作成]>[プロジェクト]を選択します。
- プロジェクト作成ウィンドウのリストからプロジェクトテンプレートを選択します。MFCアプリケーションを作成するには、[MFC アプリ]を選択します。
- [プロジェクト名]にアプリケーションのプロジェクト名を入力し、[作成]をクリックします。
- [MFC アプリケーション]ウィンドウの[アプリケーションの種類]以下[アプリケーションの種類]ドロップダウンから[ダイアログ ベース]を選択し、[完了]をクリックします。
SDKのインストール
次のようにプロジェクトにSDKをインストールします。
- [ソリューション エクスプローラ]でプロジェクト名を右クリックし、[プロパティ]をクリックして次のプロジェクトプロパティを設定します。
- [C/C++]>[全般]>[追加インクルードディレクトリ]に移動し、[編集...]をクリックしてPlanetKit SDKの
include
ディレクトリの場所を選択します。 - [リンカ]>[全般]>[追加のライブラリディレクトリ]に移動し、[編集...]をクリックしてPlanetKit SDKの
bin
ディレクトリの場所を選択します。 - [リンカー]>[入力]>[追加の依存ファイル]に移動し、[編集...]をクリックし、開発に使用されているプラットフォームに応じてPlanetKitライブラリの名前を入力します。
- プラットフォームがx64の場合は、「PlanetKit64.lib」と入力してください。
- プラットフォームがWin32の場合は、「Planetkit.lib」と入力してください。
- [C/C++]>[全般]>[追加インクルードディレクトリ]に移動し、[編集...]をクリックしてPlanetKit SDKの
- [確認]をクリックします。
SDKの初期化
PlanetKit APIを呼び出す前に、PlanetKitを初期化する必要があります。Configuration
オブジェクトと共にPlanetKitManager::Initialize()
を使ってPlanetKitを初期化します。
次に、PlanetKitManager::UpdateServerUrl()
を使ってサーバーURL (planet_base_url
)を設定する必要があります。使用している開発環境に応じて、適切な planet_base_url
を使用してください。
void YourApplication::InitializePlanetkit()
{
PlanetKit::ConfigurationPtr pConfiguration = PlanetKit::Configuration::Create(L"./", L"./");
PlanetKit::PlanetKitManager::Initialize(pConfiguration);
PlanetKit::PlanetKitManagerPtr = PlanetKit::PlanetKitManager::GetInstance();
pPlanetKitManager->UpdateServerUrl(planet_base_url);
}
アプリで PlanetKitManager::Initialize()
メソッドを最初に一度呼び出す必要があります。ダイアログベースのMFCアプリケーションの場合は、アプリのOnInitDialog()
オーバーライド関数でSDKを初期化することをお勧めします。
アクセストークンの取得
クライアントアプリでアプリサーバーにアクセストークンの作成をリクエストしてアクセストークンを取得します。
PlanetKitManager::JoinConference()
を呼び出すたびに、新しいアクセストークンを取得して使用する必要があります。
グループ音声通話に参加
グループ音声通話に参加するには、IConferenceEvent
インタフェースのコールバックを実装し、ConferenceParamPtr
オブジェクトでPlanetKitManager::JoinConference()
を呼び出します。
class YourConferenceEventListener : public IConferenceEvent {
public:
// This is called when the call is connected.
// Write your own code in function.
void OnConnected(PlanetKitConferencePtr pPlanetKitConference, ConferenceConnectedParamPtr pConnectedParam);
// This is called when the call is disconnected.
// Write your own code in function.
void OnDisconnected(PlanetKitConferencePtr pPlanetKitConference, ConferenceDisconnectedParamPtr pDisconnectedParam);
// This is called when the list of peers is updated.
// Write your own code here.
void OnPeerListUpdate(PlanetKitConferencePtr pPlanetKitConference, ConferencePeerUpdateParamPtr pParam)
...
//
// Also, you should implement other override functions.
//
}
class YourApplication {
private :
// Prepare callback event listener instance.
YourConferenceEventListener m_yourConferenceEventListener;
// Prepare PlanetKitConference instance.
PlanetKit::PlanetKitConferencePtr m_pConference;
};
void YourApplication::JoinConferenceExample(const std::wstring strRoomId, const std::wstring strAccessToken) {
// Prepare local user's ID.
std::wstring strUserId = "local user's user id";
std::wstring strServiceId = "local user's service id";
// Create the UserId object.
PlanetKit::UserIdPtr pUserId = PlanetKit::UserId::Create(strUserId.c_str(), strServiceId.c_str());
// Create MakeCallParam with Create API.
PlanetKit::ConferenceParamPtr pConferenceParam = PlanetKit::ConferenceParam::CreateWithAccessToken(
pUserId,
strRoomId.c_str(),
strServiceId.c_str(),
strAccessToken.c_str()
);
// Set required parameter.
pConferenceParam->SetConferenceEvent(&m_yourConferenceEventListener);
// Now you have to create a PlanetKit::PlanetKitConference type object
// through the PlanetKit::PlanetKitManager::JoinConference() function.
// Please note that the PlanetKit::PlanetKitConference type object is the main call instance
// that controls call-related functions after the call setup completion.
PlanetKit::PlanetKitManagerPtr pPlanetKitManager = PlanetKit::PlanetKitManager::GetInstance();
PlanetKit::SStartResult sStartResult = pPlanetKitManager->JoinConference(pConferenceParam, &m_pConference);
if (sStartResult.bSuccess == false) {
// Handle an error by referring to sStartResult.reason
}
}
ユーザーがクライアントアプリからグループ通話ルームに参加するにはルームIDが必要なので、アプリケーションで定義した通信チャネルを通じてルームIDを他のユーザーと共有する必要があります。
次のステップ
PlanetKitが提供するさまざまな機能と各機能の詳細については、以下のドキュメントを参照してください。