Web プレーヤーの一般的な機能設定は、再生モード、再生方法、ブラウザ環境によって異なります。本トピックでは、Web プレーヤーの基本機能の使用例を紹介します。
一般的な設定
Web プレーヤーのソフトウェア開発キット(SDK)では、FLV および HLS 動画を再生するためにクロスドメインアクセス構成が必要です。クロスドメインアクセスの構成方法の詳細については、「クロスドメインアクセスの構成」をご参照ください。
クロスドメインアクセスが構成されていない場合、再生中にブラウザに以下のエラーが表示されます。
No 'Access-Control-Allow-Origin' header is present on the requested resource.
全画面モードに切り替えた後は、ソフトキーボードを表示するため、入力要素に絶対位置指定を使用する必要があります。
API 呼び出しルール
Web プレーヤーの基本機能は、プロパティまたは API を通じて実装されます。
プロパティおよび API の詳細については、「Aliplayer API リファレンス」をご参照ください。
API の呼び出しルールは以下のとおりです。
プレーヤーのコンストラクターのコールバック関数内で API を呼び出します。以下のコードはその例です。
var player = new Aliplayer({},function(player) {
player.setSpeed(2);
});再生の制御
Web プレーヤーでは、特定の時刻からの再生開始や一時停止などの操作がサポートされています。
特定の時刻から再生を開始
この機能は、指定した時刻にジャンプして再生を開始します。seek API によって実装されます。以下のコードはその例です。
// time は秒単位で指定する時刻です。
player.seek(time)再生の一時停止
この機能は、動画の再生を一時停止します。pause API によって実装されます。以下のコードはその例です。
player.pause()大きな再生ボタンを表示するには、true パラメーターを渡します。例: player.pause(true)。
プレーヤーの破棄
この機能は、プレーヤーインスタンスを破棄します。dispose API によって実装されます。以下のコードはその例です。
player.dispose()表示モードの設定
デスクトップおよび iOS ブラウザでサポートされています。
Android(Chrome および Firefox)でサポートされています。
WeChat やほとんどのブラウザでは、動画再生がインターセプトされ、独自のプレーヤーが使用されるため、この機能はサポートされていません。
回転
この機能は、動画を指定された角度で回転させます。setRotate API によって実装されます。回転角度を設定した後、現在の回転角度を取得することもできます。以下のコードはその例です。
// 回転角度を設定します。<angle> の値が正の場合は時計回り、負の場合は反時計回りに回転します。例: player.setRotate(180) は動画を時計回りに 180 度回転させます。
player.setRotate(<angle>)
// 回転角度を取得します。
player.getRotate()ミラー表示
この機能は、水平方向および垂直方向のミラー表示をサポートします。setImage API によって実装されます。以下のコードはその例です。
// 水平ミラー
player.setImage('horizon')
// 垂直ミラー
player.setImage('vertical')また、Web プレーヤーでは、動画の高さと幅を設定するための videoHeight および videoWidth プロパティも提供されています。回転やミラー表示時に動画が親コンテナーからはみ出さないようにするため、通常、これらの値はコンテナーサイズよりも小さく設定します。以下のコードはその例です。
width: '100%', // コンテナーサイズ
height: '100%', // コンテナーサイズ
videoHeight:"200px", // 動画の高さ再生情報の取得
Web プレーヤーでは、現在の再生位置および合計再生時間を取得できます。
現在の再生位置の取得
この機能は、現在の再生時刻を取得します。getCurrentTime API によって実装されます。以下のコードはその例です。
// この API は秒単位で時刻を返します。
player.getCurrentTime()再生時間の取得
この機能は、動画の合計再生時間を取得します。再生時間は、再生イベント後に動画が読み込まれた後でのみ取得可能です。getDuration API によって実装されます。以下のコードはその例です。
player.getDuration()再生ステータスの監視
この機能は、プレーヤーのステータスを監視します。getStatus API によって実装されます。戻り値は以下のとおりです。
init:初期化済み
ready:準備完了
loading:読み込み中
play:再生
pause:一時停止
playing:再生中
waiting:バッファー待ち
error:エラー
ended:終了
以下のコードはその例です。
player.getStatus()音量の設定
音量の設定には、音量調整とミュートが含まれます。
iOS および一部の Android システムでは、video.volume プロパティが読み取り専用であるため、ApsaraVideo Player SDK for web が提供する getVolume および setVolume メソッドは動作しません。
音量の調整
この機能は、音量レベルを調整します。setVolume API によって実装されます。音量を設定した後、現在の音量情報を取得することもできます。以下のコードはその例です。
// volume の値は 0 ~ 1 の実数です。
player.setVolume(0)
// 音量情報を取得します。
player.getVolume()ミュート設定
この機能は、再生中の動画をミュートします。mute API によって実装されます。以下のコードはその例です。
// 動画をミュート
player.mute();
// ミュートを解除
player.unMute();再生速度の制御
Web プレーヤー SDK のデフォルト UI には、再生速度制御機能が含まれています。視聴者はインターフェイスから再生速度を選択できます。カスタム UI を使用する場合は、setSpeed API を使用して再生速度制御機能を実装できます。
再生速度の設定を無効にするには、setSpeed の説明が記載されている「Aliplayer API Reference」をご参照ください。
例:
// 以下の例では、再生速度を現在の 2 倍に設定します。
player.setSpeed(2)マルチ解像度再生
この機能は、複数の解像度ストリームのアドレスを設定することで、マルチ解像度再生を実現します。
VID+PlayAuth 方式で再生する場合、追加の設定は不要です。Web プレーヤー SDK が ApsaraVideo VOD サービスから解像度リストを取得します。視聴者は再生インターフェイスのコントロールバーにある [設定] ボタンをクリックして、解像度リストを表示できます。
説明VID+PlayAuth 方式を使用する場合、H5 再生モードでは format プロパティを設定して MP4 または MP3 フォーマットを選択できます。デフォルトのフォーマットは MP4 です。
source プロパティを設定して URL 再生方式を使用する場合、source プロパティの JSON 構造内に複数の解像度ストリームのアドレスをキーと値のペアとして指定する必要があります。設定後、視聴者は再生インターフェイスのコントロールバーにある [設定] ボタンをクリックして、解像度リストを表示できます。
定義コンポーネントを使用して、定義リストの UI をカスタマイズできます。コード例については、機能デモをご参照ください。
URL 再生方式を使用する場合、source プロパティの JSON 構造内のキーと値のペアは以下のとおりです。
"OD": "<オリジナル品質の URL>"
"FD": "<低解像度の URL>"
"LD": "<標準解像度の URL>"
"SD": "<高解像度の URL>"
"HD": "<超高解像度の URL>"
"2K": "<2K の URL>"
"4K": "<4K の URL>"次のコードは、URL 再生メソッドの定義を設定する方法の例です。
// この例では、超高解像度および高解像度のアドレスを設定しています。
source:'{"HD":"http://******/player/hdexample.mp4","SD":"http://******/player/sdexample.mp4"}'Web プレーヤーでは、qualitySort プロパティを使用して解像度を昇順または降順に並べ替えることもサポートされています。
desc: 降順 (大きいものから小さいものへ) にソートします。
asc: 昇順に並べ替えます(小さい順から大きい順へ)。
プレーヤーはユーザーの解像度選択を記憶します。ユーザーが再度動画を開いた場合、最後に選択した解像度が優先されます。最後に選択した解像度が利用できない場合は、プレーヤーはデフォルトでより低い解像度を選択します。
選択した解像度が再生できない場合、プレーヤーは自動的に次の利用可能な解像度に切り替え、プロンプトを表示します。これは H5 のみでサポートされています。
ループ再生
Web プレーヤーでは、rePlay プロパティを設定するか、ended イベントを監視することで、ループ再生をサポートしています。
rePlay プロパティを設定する例
rePlay:trueended イベントを監視する例
player.on('ended',function(){
player.replay()
})モバイルジェスチャー制御
Web プレーヤーは、モバイルデバイスの小画面向けに最適化されており、ドラッグしやすいプログレスバーを備えています。また、モバイル専用の機能として、長押しによる早送りとダブルタップによるシークが提供されています。
長押しによる速度制御
デフォルトで、モバイルデバイスでは長押しによる早送り機能が有効になっています。プログレスバー以外のプレーヤー領域を約 0.5 秒間長押しすると、早送りが開始されます。指を離すと、元の再生速度に戻ります。
この機能を無効にするには、longPressFastForward: false パラメーターを設定します。詳細については、「Aliplayer API リファレンス」をご参照ください。
ダブルタップによるシーク
モバイルデバイスではデフォルトで、Web プレーヤーにダブルクリック機能が搭載されており、早送りおよび早戻しが可能です。再生画面の左 1/3 をダブルクリックすると 10 秒進み、右 1/3 をダブルクリックすると 10 秒戻ります。
この機能を無効にするには、dbClickSkip: false パラメーターを設定します。詳細については、「Aliplayer API リファレンス」をご参照ください。