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

グループ通話を始める(macOS)

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

Note

より迅速な開発のために、クイックスタートに基づいてアプリを実装できます。

前提条件

プロジェクトの作成

Xcodeを開き、次のように新しいプロジェクトを作成します。

  1. Welcome to Xcode]ウィンドウで[Create a new Xcode Project]をクリックします。
  2. macOS]タブで[App]を選択し、[Next]をクリックします。
  3. プロジェクト作成ウィンドウで以下のように設定します。
    1. Product Name]フィールドに製品名を入力します。
    2. Team]フィールドで開発チームを選択します。
    3. Organization Identifier]フィールドに組織識別子を入力します。
    4. Interface]フィールドで[Storyboard]を選択します。
    5. Next]をクリックします。 macOSプロジェクトを作成する
  4. プロジェクトが作成される場所を選択し、[Create]をクリックします。

SDKのインストール

Swift Package Managerを使用してSDKをインストールします。

  1. Xcodeメニューバーで[File]>[Add Packages...]を選択します。
  2. Search or Enter Package URL]フィールドにPlanetKitリポジトリURL(https://github.com/line/planet-kit-apple)を入力します。
  3. Add Package]ボタンをクリックします。

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

音声通話機能を有効にするには、ユーザーがアプリにマイクアクセスを許可する必要があります。その手順を実行するには、次のように設定してください。

SDKの初期化

PlanetKit APIを呼び出す前に、PlanetKitを初期化する必要があります。PlanetKitInitialSettingBuilderオブジェクトでPlanetKitManagerinitialize()を使ってPlanetKitを初期化します。

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

// AppDelegate.swift

// Import PlanetKit SDK
import PlanetKit

PlanetKitManager.shared.initialize(initialSettings: PlanetKitInitialSettingBuilder()
.withSetKitServerKey(serverUrl: planet_base_url)
.build())
Note

アプリでinitialize()メソッドを最初に一度呼び出す必要があります。NSApplicationDelegateを採用し遵守しているAppDelegateapplicationDidFinishLaunching(_:)メソッドでSDKを初期化することをお勧めします。

アクセストークンの取得

クライアントアプリでアプリサーバーにアクセストークンの作成をリクエストしてアクセストークンを取得します。

Note

joinConference()を呼び出すたびに、新しいアクセストークンを取得して使用する必要があります。

グループ音声通話に参加

グループ音声通話に参加するには、以下のプロパティを含むPlanetKitConferenceParamオブジェクトを指定してPlanetKitManagerjoinConference()を呼び出します。

  • myUserId:ローカルユーザーのユーザーID
  • roomId:ルームID
  • roomServiceId:ルームのサービスID
  • delegate: PlanetKitConferenceDelegateを採用し遵守するイベントデリゲート
  • accessToken:アクセストークン
import PlanetKit

class YourClass {
func joinConference() {
let param = PlanetKitConferenceParam(myUserId: myUserId, roomId: roomId, roomServiceId: serviceId, displayName: nil, delegate: self, accessToken: accessToken)
let result = PlanetKitManager.shared.joinConference(param: param, settings: nil)

if (result.reason == PlanetKitStartFailReason.none && result.conference != null) {
// The "result.conference" instance is the main instance to call APIs from now on.
// You must keep it to control this call.
}
else {
// Handle an error by referring to result.reason.
}
}
}

extension YourClass: PlanetKitConferenceDelegate {
func didConnect(_ conference: PlanetKitConference, connected: PlanetKitConferenceConnectedParam) {
// This is called when the call is connected.
// Write your own code here.
}

func didDisconnect(_ conference: PlanetKitConference, disconnected: PlanetKitDisconnectedParam) {
// This is called when the call is disconnected.
// Write your own code here.
}

func peerListDidUpdate(_ conference: PlanetKitConference, updated: PlanetKitConferencePeerListUpdateParam) {
// This is called when the list of peers is updated.
// Write your own code here.
}
}
Note

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

次のステップ

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

  • 通話フロー:通話タイプごとの通話フローを確認してください。
  • サブグループ:複数のサブグループがあるルームや通訳ルームなどの高度な機能を実装できるサブグループ機能を確認してください。
  • 拡張機能:画面共有、データセッションなど、さまざまな拡張機能をご覧してください。
  • サンプルコード:アプリの実装に参考になるサンプルコードを確認してください。
  • 参考ドキュメント:APIリファレンス、APIの変更履歴、リリースノートを確認してください。