ApsaraVideo Player SDK for Android を使用してビデオ再生を開始します。
前提条件
ApsaraVideo Player for Android の SDK 統合が完了していること。
オープンソースサンプルプロジェクト
詳細なコード例については、API-Example の BasicPlayback モジュールをご参照ください。この 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.ali_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 API を呼び出して認証情報を生成します。
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 API を呼び出して生成します。
vidSts.setAccessKeySecret("<yourAccessKeySecret>"); // 必須。一時 AccessKey ペアの AccessKey Secret。STS の AssumeRole API を呼び出して生成します。
vidSts.setSecurityToken("<yourSecurityToken>"); // 必須。STS トークン。STS の AssumeRole API を呼び出して生成します。
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:再生の終了
再生を停止する前に、プレーヤービューをアンバインドしてレンダリングリソースを解放します。使用しているプレーヤービュータイプに基づいて、アンバインドメソッドを選択してください。
-
SurfaceView / TextureView:
setSurface(null)を呼び出してビューをアンバインドします。 -
AliDisplayView:
setDisplayView(null)を呼び出してビューをアンバインドします。
再生を終了するための完全なコードは次のとおりです:
// プレーヤービューをアンバインドします。
// SurfaceView / TextureView の場合:
mAliPlayer.setSurface(null);
// AliDisplayView の場合:
mAliPlayer.setDisplayView(null);
// 再生を停止します。
mAliPlayer.stop();
// プレーヤーを破棄します。
mAliPlayer.release();
// メモリリークを回避するため、参照をクリアします。
mAliPlayer = null;
関連ドキュメント
再生制御、イベントリスナー、その他のプレーヤー機能については、「基本機能」をご参照ください。