Android 向けネイティブ アプリケーション

Product
Video Cloud
対象となる役割
開発者
バージョン
Brightcove 5
エディション
すべて

本ドキュメントは Brightcove App SDK for Android を使って構築したアプリケーションについて説明しています。Android アプリケーションを初めて構築する際にダウンロードする参考ドキュメントなど、SDK の詳細について知りたい場合は、Brightcove App SDK for Android の基礎をご覧ください。

Android 向けに構築された One Planet アプリケーションは、Apple の iOS 用に弊社が作成したアプリケーションに非常に似ています。プレイリストのリストを表示し、視聴者がプレイリストを選択すると、そのプレイリストにある動画のリストが表示されます。次に、視聴者は、再生する動画を選択できます。今のところ、Android バージョンのこのアプリケーションは、iOS バージョンと機能が多少異なります。

One Planet Android アプリケーションのソースをダウンロードして、アプリのコンテンツを試用できます。Brightcove App SDK for Android 用の jar でプロジェクトのビルド パスを更新する必要があります。

One Planet の実行

Playlist Activity が起動すると、onCreate メソッドが呼び出されます。

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        fetchPlaylists();
    }

fetchPlaylists メソッドは、ReadAPI クラスを使用して、Brightcove Media API への呼び出しを行います。UI の反応を担当するメイン スレッドを妨げないように、スレッドが作成されます。このクラスは、bc-android-mediaapi.jar に含まれています。

private void fetchPlaylists() {
    Thread t = new Thread() {
        public void run() {
            try {
                playlists = readApi.findAllPlaylists(100, 0, false,
                            SortByTypeEnum.CREATION_DATE, SortOrderTypeEnum.ASC,
                            null, null, null);

                handler.post(updateResults);
                } 
            catch (BCException bce) {
                Log.d("Playlists", "BCException!>> " + bce.getMessage());
                bce.printStackTrace();
                }
           catch (Exception e) {
                e.printStackTrace();
                }
            }
       };
    t.start();
}

次にプレイリストのデータが ListView に提供されます。ListView は、Media API 呼び出しで返された各プレイリストを表示します。アプリケーションは、次のようにプレイリストを表示します。

ここで、視聴者は、視聴したい動画のプレイリストを選択できます。ListView アイテムが選択されると、onListItemClick メソッドが呼び出されます。このメソッドは Videos Activity を開始し、選択された Playlist からの動画データを渡します。

protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    Playlist playlist = (Playlist) getListAdapter().getItem(position);
    Log.d(TAG, "clicked: " + playlist.getName());

    Intent i = new Intent(this, Videos.class);
    AndroidPlaylist ap = new AndroidPlaylist(playlist);

    i.putExtra(AndroidPlaylist.PLAYLIST, ap);
    startActivity(i);
}

視聴者が Bugs プレイリストを選択すると、アプリケーションは、次のように別の ListView に移動します。

視聴者が視聴する動画を選択すると、Player Activity が作成され、画面に描画されます。Videos クラスの onListItemClick メソッドが、Player Activity の作成を担当します。

protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    Log.d(TAG, "clicked: " + playlist.getVideoName(position));
    Intent i = new Intent(this, Player.class);
    i.putExtra(Player.VIDEO_ID, playlist.getVideoId(position));
    startActivity(i);
}

Player Activity が作成されると、Activity へ渡された動画 ID を使用して、Media API への findVideoById 呼び出しを行います。これは Player クラスの playVideo メソッドで行われます。

private void playVideo() {

    // Make sure we have a player.
    if (player == null) {
        Log.e("BCPlaybackTester.playVideo", "プレーヤが見つかりません。中止します。");
        return;
    }

    // Read the extra data from the Intent.
    Intent intent = getIntent();
    Long videoId = intent.getLongExtra(VIDEO_ID, Long.MAX_VALUE);

    // Set up the Read API.
    Logger log = Logger.getLogger("BCAndroidAPILogger"); // create BC API wrapper
    ReadAPI readAPI = new ReadAPI(APIToken.API_TOKEN);
    readAPI.setLogger(log);

    try {
        Video video = readAPI.findVideoById(videoId, null, null);

        if (video != null) {
            player.load(video);
            player.start();
        } else {
            Log.e("BCPlaybackTester.playVideo", "次の ID の動画が見つかりません: " + videoId);
        }
    } catch (Exception e) {
        Log.e(TAG, "temp コードのエラー", e);
    }
}

動画データが返されると、BCPlayerView にロードされ、動画の再生が始まります。

視聴者は、ビデオ再生の後または再生中に、戻るボタンを使用して、前の表示に戻ることができます。

この概要がお役に立てば幸いです。コードをダウンロードし、希望に応じて追加や変更をしてください。サポートが必要な場合あるいは質問がある場合は、フォーラムを訪れてください。電子メールによるモバイル SDK に関する最新情報や発表の配信に登録することもできます。

タグ
Android, Droid, モバイル