アーカイブのチュートリアル(Android)
概要
OpenTokのアーカイブAPIを使用すると、セッション内の音声・動画ストリームをMP4ファイルとして記録できます。アーカイブ録画の開始と停止は、サーバーサイドのコードで行います。
サーバーの設定
OpenTokのセッションをアーカイブ(セッションの録画を保存)するには、 サーバー セットアップ。サーバーを使ったアーカイブの実装方法は数多くありますが、このチュートリアルでは、簡単なPHPサーバーをさっと立ち上げてみます。
サーバーを起動するには、下の「Heroku」ボタンをクリックするだけです。クリックするとHerokuのウェブサイトに遷移し、OpenTokのAPIキーとAPIシークレットの入力を求められます。これらの値は、プロジェクトページで取得できます。 Video APIアカウント. HerokuのAccountをお持ちでない場合は、登録する必要があります(無料です)。
コードを詳しく見てみたいですか? 上のボタンをクリックすると、 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アプリケーションの構築と機能強化を続けてください: