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

グループ通話開始

PlanetKitを使用することで、1対1通話またはグループ通話のための音声およびビデオ通話機能をアプリに連携できます。このガイドでは、Flutterアプリでグループ音声通話の実装を開始する方法を説明します。

前提条件

プロジェクト作成

Set up an editorドキュメントを参考にして、プロジェクトを作成します。

SDKセットアップ

  1. pubspec.yamlに次のコードを追加します。追加の際、{PLANET_KIT_VERSION}は、使用するSDKバージョン(例:v1.0.0)に入れ替えます。

    dependencies:
    flutter:
    sdk: flutter

    planet_kit_flutter:
    git:
    url: git@github.com:line/planet-kit-flutter.git
    ref: {PLANET_KIT_VERSION}
  2. planet_kit_flutterをアプリケーションのソースコードにインポートします。

    import 'package:planet_kit_flutter/planet_kit_flutter.dart';

システム権限のリクエスト

Dart permission_handlerパッケージを使用して電話、マイク、Bluetoothの接続権限をリクエストします。

import 'package:permission_handler/permission_handler.dart';
final status = await [Permission.microphone, Permission.phone, Permission.bluetoothConnect].request();

SDK初期化

PlanetKit APIを呼び出すには、まずPlanetKitを初期化する必要があります。PlanetKitInitParamオブジェクトと共にPlanetKitManagerinitializePlanetKit()を使用してPlanetKitを初期化します。

PlanetKit.initializePlanetKit()を呼び出す前にPlanetKitInitParamオブジェクトにサーバーURLを設定する必要があります。利用している開発環境に応じて、適切なplanet_base_urlを使用してください。

Future<void> initializePlanetKit() async {
final serverUrl = "SERVER_URL";
final initParam = PlanetKitInitParam(
logSetting: PlanetKitLogSetting(
enabled: false,
logLevel: PlanetKitLogLevel.silent,
logSizeLimit: PlanetKitLogSizeLimit.small),
serverUrl: serverUrl);
final result =
await PlanetKitManager.instance.initializePlanetKit(initParam);
}
Note
  • アプリでinitializePlanetKit()メソッドを最初に1回は呼び出す必要があります。アプリのinitState()メソッドでSDKを初期化するのが望ましいです。
  • SDK初期化とログ設定についての詳細は、PlanetKit初期化およびログ設定を参照してください。

アクセストークン取得

クライアントアプリからアプリサーバーにアクセストークンの作成をリクエストしてください。

Note

PlanetKitManagerjoinConference()を呼び出す度に新しいアクセストークンを受け取って使用する必要があります。

グループ音声通話の参加

グループ音声通話に参加するには、次の引数と共にPlanetKitManagerjoinConference()を呼び出します。

  • 以下の属性を含むPlanetKitJoinConferenceParamオブジェクト
    • myUserId:ローカルユーザーのユーザーID
    • roomId:ルームID
    • myServiceId:ローカルユーザーのサービスID
    • roomServiceId:ルームのサービスID
    • accessToken:アクセストークン
  • イベントコールバックが実装されたPlanetKitConferenceEventHandlerオブジェクト
Future<bool> joinConference(String roomId, String accessToken) async {
var builder = PlanetKitJoinConferenceParamBuilder()
.setMyUserId(myUserId)
.setMyServiceId(myServiceId)
.setRoomServiceId(roomServiceId)
.setRoomId(roomId)
.setAccessToken(accessToken);

PlanetKitJoinConferenceParam? param;
try {
param = builder.build();
} catch (error) {
print("failed to build join conference param $error");
return false;
}
final result =
await PlanetKitManager.instance.joinConference(param, _eventHandler);

if (result.reason != PlanetKitStartFailReason.none) {
print("join conference result ${result.reason}");
return false;
}

// The "result.conference" instance is the main instance to call APIs from now on.
// You must keep it to control this call.
return true;
}

final _eventHandler = PlanetKitConferenceEventHandler(
onConnected: (conference) => print("connected"),
onDisconnected: (conference, reason, source, byRemote) => print("disconnected $reason"),
onPeerListUpdated: (conference, updateParam) => print("peer list updated $updateParam"));
Note

ユーザーがクライアントアプリでグループ通話ルームに参加するには、部屋のIDが必要なため、アプリケーションで定義した通信チャンネルを通じてルームIDを他のユーザーと共有する必要があります。

次のステップ

以下のドキュメントを参照して、PlanetKitが提供するさまざまな機能と各機能の詳しい使い方を確認してください。

  • 通話フロー:通話タイプ別の通話フローを確認してください。
  • 拡張機能:ミュートの制御、画面共有など、さまざまな拡張機能を確認してください。
  • サンプルコード:アプリの実装に参考となるサンプルコードを確認してください。
  • 参照ドキュメント:APIリファレンス、API変更履歴、リリースノートを確認してください。