本ドキュメントは 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 でプロジェクトのビルド パスを更新する必要があります。
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 に関する最新情報や発表の配信に登録することもできます。