このトピックでは、ApsaraVideo Player SDK for Android を使用してビデオ再生を開始する方法について説明します。
前提条件
ApsaraVideo Player for Android の SDK の統合が完了していること。
オープンソースのサンプルプロジェクト
詳細なコード例については、API-Example の BasicPlayback モジュールをご参照ください。このサンプルプロジェクトは、ApsaraVideo Player SDK のコア機能を迅速に統合するのに役立つ、Java ベースの Android プロジェクトです。
手順
ステップ 1:プレーヤーの作成
AliPlayerFactory クラスを使用して AliPlayer インスタンスを作成します。
// プレーヤーインスタンスを作成します。
AliPlayer mAliPlayer = AliPlayerFactory.createAliPlayer(context);
// traceId を渡します。
// オプション:トレース分析機能を使用します。ApsaraVideo Player SDK でのビデオ再生中に例外が発生した場合、この機能は特定のユーザーまたはセッションの異常な再生をエンドツーエンドでトレースします。これにより、問題を迅速に診断し、再生体験の管理を向上させることができます。
// traceId の値を定義します。これは、ビジネスのユーザー ID や、国際移動体装置識別番号 (IMEI) または広告主識別子 (IDFA) などのデバイス ID といった、ユーザーまたはデバイスの一意の識別子である必要があります。
mAliPlayer.setTraceId("traceId");プレーヤーの再生品質モニタリング、トレース分析、および動画再生統計機能は、イベントトラッキングログのレポートに依存しています。再生品質モニタリングは、全体的な再生品質に関するデータを提供します。トレース分析は、特定のユーザーやデバイスを特定し、その再生動作を分析して、再生エラーなどの問題を迅速に特定するのに役立ちます。
プレーヤーを作成する際、利用可能な機能は setTraceId パラメーターの構成によって異なります:
setTraceIdパラメーターを設定しない場合 (デフォルト):イベントトラッキングログのレポートが有効になります。再生品質モニタリングと動画再生統計機能を使用できます。トレース分析機能は利用できません。setTraceIdパラメーターに traceId を設定する場合:traceId の値はユーザー定義であり、ビジネスのユーザー ID や、国際移動体装置識別番号 (IMEI) または広告主識別子 (IDFA) などのデバイス ID といった、ユーザーまたはデバイスの一意の識別子である必要があります。traceId を設定すると、イベントトラッキングログのレポートが有効になります。再生品質モニタリング、トレース分析、動画再生統計機能を使用できます。setTraceIdパラメーターをDisableAnalyticsに設定する場合:イベントトラッキングログのレポートが無効になります。再生品質モニタリング、トレース分析、動画再生統計機能は利用できません。
ステップ 2: 表示ビューの設定
プレーヤーは、AliDisplayView、SurfaceView、TextureView の 3 種類のビューをサポートしています。
AliDisplayView:SDK によってカプセル化された統一されたビューコンポーネントです。標準化されたインターフェイスを提供し、すぐに使用できます。このビューは、迅速な統合やシンプルな UI シナリオに適しています。
SurfaceView / TextureView:ネイティブビューです。アプリケーション層は、ビューのライフサイクルとレンダリングロジックを完全に管理できます。これらのビューは、複雑なビュー階層や、きめ細かなコントロールと高い柔軟性が求められるシナリオに適しています。
XML ファイルでビューを宣言します。
AliDisplayView
<!-- プレーヤーレンダリングビュー --> <com.aliyun.player.videoview.AliDisplayView android:id="@+id/ali_display_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" />SurfaceView
<!-- プレーヤーレンダリングビュー --> <SurfaceView android:id="@+id/surface_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" />TextureView
<!-- プレーヤーレンダリングビュー --> <TextureView android:id="@+id/texture_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" />表示ビューを設定します。
AliDisplayView
プレーヤーの
setDisplayViewメソッドを呼び出してビューをアタッチします。AliDisplayView mAliDisplayView = findViewById(R.id.display_view); // setPreferDisplayView() を使用してプレーヤービューのタイプを設定します。 mAliDisplayView.setPreferDisplayView(AliDisplayView.DisplayViewType.SurfaceView); mAliPlayer.setDisplayView(mAliDisplayView);SurfaceView
プレーヤーの
setSurfaceメソッドを呼び出してビューをアタッチします。SurfaceView mSurfaceView = findViewById(R.id.surface_view); mSurfaceView.getHolder().addCallback(new SurfaceHolder.Callback() { @Override public void surfaceCreated(@NonNull SurfaceHolder holder) { mAliPlayer.setSurface(holder.getSurface()); } @Override public void surfaceChanged(@NonNull SurfaceHolder holder, int format, int width, int height) { mAliPlayer.surfaceChanged(); } @Override public void surfaceDestroyed(@NonNull SurfaceHolder holder) { mAliPlayer.setSurface(null) } });TextureView
プレーヤーの
setSurfaceメソッドを呼び出してビューをアタッチします。TextureView mTextureView = findViewById(R.id.texture_view); mTextureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() { @Override public void onSurfaceTextureAvailable(@NonNull SurfaceTexture surface, int width, int height) { mAliPlayer.setSurface(new Surface(surface)); } @Override public void onSurfaceTextureSizeChanged(@NonNull SurfaceTexture surface, int width, int height) { mAliPlayer.surfaceChanged(); } @Override public boolean onSurfaceTextureDestroyed(@NonNull SurfaceTexture surface) { mAliPlayer.setSurface(null); return true; } @Override public void onSurfaceTextureUpdated(@NonNull SurfaceTexture surface) { } });
ステップ 3: 再生ソースの設定
VidAuth 再生 (推奨)
VidAuth vidAuth = new VidAuth();
vidAuth.setVid("Your Vid");// 必須。ビデオ ID (VideoId)。
vidAuth.setPlayAuth("<yourPlayAuth>");// 必須。再生認証情報。ApsaraVideo VOD の GetVideoPlayAuth 操作を呼び出して認証情報を生成します。
vidAuth.setRegion("The region ID");// ApsaraVideo Player SDK V5.5.5.0 以降では、このパラメーターは非推奨です。プレーヤーが自動的にリージョンを解析するため、設定する必要はありません。V5.5.5.0 より前のバージョンでは、このパラメーターは必須です。ApsaraVideo VOD が有効化されているリージョンを指定します。デフォルト値は cn-shanghai です。
// vidAuth.setAuthTimeout(3600); // 再生 URL の有効期間 (秒単位)。この値は、ApsaraVideo VOD コンソールで設定された URL 署名の有効期間を上書きします。このパラメーターを渡さない場合、デフォルト値の 3600 が使用されます。このパラメーターを設定する場合は、再生が完了する前に再生 URL の有効期限が切れるのを防ぐため、期間がビデオの長さを超えるようにしてください。
mAliPlayer.setDataSource(vidAuth);VidSts 再生
VidSts vidSts = new VidSts();
vidSts.setVid("Your Vid");// 必須。ビデオ ID (VideoId)。
vidSts.setAccessKeyId("<yourAccessKeyId>");// 必須。一時的な AccessKey ペアの AccessKey ID。Security Token Service (STS) の AssumeRole 操作を呼び出して生成します。
vidSts.setAccessKeySecret("<yourAccessKeySecret>");// 必須。一時的な AccessKey ペアの AccessKey Secret。STS の AssumeRole 操作を呼び出して生成します。
vidSts.setSecurityToken("<yourSecurityToken>");// 必須。STS トークン。STS の AssumeRole 操作を呼び出して生成します。
vidSts.setRegion("The region ID");// 必須。ApsaraVideo VOD が有効化されているリージョン。デフォルト値は cn-shanghai です。
mAliPlayer.setDataSource(vidSts);UrlSource 再生
// 再生ソースオブジェクトを作成し、再生 URL を設定します。
UrlSource urlSource = new UrlSource();
// 必須。再生 URL。サードパーティのビデオオンデマンド (VOD) URL、ApsaraVideo VOD からの再生 URL、またはローカルビデオ URL を指定できます。
urlSource.setUri("The playback URL");
mAliPlayer.setDataSource(urlSource);再生ソースの設定方法の詳細については、「基本機能」をご参照ください。
ステップ 4: 再生の開始
// 再生を準備します。
mAliPlayer.prepare();
// 再生を開始します。
mAliPlayer.start();ステップ 5: 再生の終了
// 再生を停止します。
mAliPlayer.stop();
// プレーヤーを破棄します。
mAliPlayer.release();
// メモリリークを避けるためにリファレンスをクリアします。
mAliPlayer = null;リファレンス
再生コントロールやイベントリスナーなどの基本的なプレーヤー機能の詳細については、「基本機能」をご参照ください。