アーカイブのチュートリアル(Android)

概要

OpenTokのアーカイブAPIを使用すると、セッション内の音声・動画ストリームをMP4ファイルとして記録できます。アーカイブ録画の開始と停止は、サーバーサイドのコードで行います。

サーバーの設定

OpenTokのセッションをアーカイブ(セッションの録画を保存)するには、 サーバー セットアップ。サーバーを使ったアーカイブの実装方法は数多くありますが、このチュートリアルでは、簡単なPHPサーバーをさっと立ち上げてみます。

サーバーを起動するには、下の「Heroku」ボタンをクリックするだけです。クリックするとHerokuのウェブサイトに遷移し、OpenTokのAPIキーとAPIシークレットの入力を求められます。これらの値は、プロジェクトページで取得できます。 Video APIアカウント. HerokuのAccountをお持ちでない場合は、登録する必要があります(無料です)。

Deploy

コードを詳しく見てみたいですか? 上のボタンをクリックすると、 learning-opentok-php GitHubのリポジトリ。リポジトリにアクセスして、コードや追加のドキュメントを確認してください。また、リポジトリをフォークして、デプロイ前に変更を加えることも可能です。

プロジェクトの設定

このチュートリアルを進めるには、OpenTokの Androidサンプルアプリ GitHub上のリポジトリ:

git clone https://github.com/Vonage/vonage-video-android-sdk-samples.git

次に、 アーカイブ - Java Android Studioでのプロジェクト。

注: このチュートリアルでは、Android サンプルアプリの Java 版について解説します。ドキュメント付きの Kotlin 版については、 Androidサンプルアプリレポ.

重要だ: アーカイブできるのは、 OpenTok メディアルーター (メディアモードが「ルーティング」に設定されているセッション)。デフォルトでは learning-opentok-php このチュートリアルアプリで使用されているコードは、ルーティングされたセッションを採用しています。

コードを詳しく見ていく

注: このAndroidアーカイブサンプルアプリは、 ベーシック・ビデオチャット アプリ

の中で ServerConfig ファイルでは、 CHAT_SERVER_URL ベースURLに対するプロパティ:

public static final String CHAT_SERVER_URL = "https://YOURAPPNAME.herokuapp.com";

アプリがアーカイブ録画の開始、録画の停止、および録画した動画の再生を行うために呼び出すWebサービスのエンドポイントは、 APIService インターフェイスを使用している:

public interface APIService {
    @GET("session")
    Call getSession();

    @POST("archive/start")
    @Headers("Content-Type: application/json")
    Call startArchive(@Body StartArchiveRequest startArchiveRequest);

    @POST("archive/{archiveId}/stop")
    Call stopArchive(@Path("archiveId") String archiveId);
}

ユーザーが start archive, stop archiveそして play archive アクションバーやオプションメニューのメニュー項目を選択すると、アプリは startArchive() そして stopArchive()そして playArchive() メソッド。これらのメソッドは、内部で上記で定義されたWebサービスを呼び出します:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle app bar item clicks here. The app bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    switch (item.getItemId()) {
        case R.id.action_settings:
            return true;
        case R.id.action_start_archive:
            startArchive();
            return true;
        case R.id.action_stop_archive:
            stopArchive();
            return true;
        case R.id.action_play_archive:
            playArchive();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

について MainActivity このクラスには、 archiveListener ...を実装するプロパティ Session.ArchiveListener アーカイブ関連のイベントを処理するためのコールバックを提供するインターフェース: onArchiveStarted そして onArchiveStopped.

ユーザーが start archive ボタンをタップすると、アプリは archive/start エンドポイント経由で startArchive() メソッド。アーカイブ録画が開始されると、 onArchiveStarted() コールバックが呼び出されます:

@Override
    public void onArchiveStarted(Session session, String archiveId, String archiveName) {
        currentArchiveId = archiveId;
        setStopArchiveEnabled(true);
        archivingIndicatorView.setVisibility(View.VISIBLE);
    }

について onArchiveStarted() このメソッドは、アーカイブ識別子を currentArchiveId プロパティ。このメソッドは、さらに setStopArchiveEnabled(true), これにより stop recording 表示されるメニュー項目。そして、それが原因で archivingIndicatorView 表示される(動画上に赤い点)。

ユーザーが stop archive ボタンをタップすると、アプリは archive/stop エンドポイント経由で stopArchive() メソッド。アーカイブ録画が停止すると、 onArchiveStopped() コールバックが呼び出されます:

@Override
public void onArchiveStopped(Session session, String archiveId) {
    playableArchiveId = archiveId;
    currentArchiveId = null;
    setPlayArchiveEnabled(true);
    setStartArchiveEnabled(true);
    archivingIndicatorView.setVisibility(View.INVISIBLE);
}

について onArchiveStopped() このメソッドは、アーカイブ識別子を playableArchiveId プロパティとセット currentArchiveId への null. このメソッドはまた、 setPlayArchiveEnabled(false), これにより「アーカイブを再生」メニュー項目が無効化され、さらに setStartArchiveEnabled(true) 「アーカイブを開始」メニュー項目を有効にするためです。そして、これにより archivingIndicatorView 非表示にする。

ユーザーが play archive ボタン、その playArchive() このメソッドは、(デバイスのWebブラウザで)アーカイブ録画を表示するWebページを開きます。

注釈

  • ほとんどのアプリケーションでは、アーカイブ録画の制御権は各エンドユーザーに付与されることはありません。

  • クライアントがストリームの公開を開始するたびに記録されるセッションを、自動的にアーカイブすることができます。

  • アーカイブ録画の保存先として、Amazon S3またはMicrosoft Azureを設定します。

アーカイブの詳細については OpenTok アーカイブ開発者ガイド.

おめでとうございます!Android向けアーカイブチュートリアルを完了しました。
ここで作成したコードをさらに試したり調整したりすることもできますし、あるいは 次のステップ の下にある。

次のステップ

ここでの作業が終わったら、以下の役立つリソースを活用して、OpenTokアプリケーションの構築と機能強化を続けてください: