05.バッファリング中の対応、画面をONのままにする対応
バッファリング中の対応、画面をONのままにする対応を行います。
解説
再生開始直後やスキップ直後は、バッファリングが行われ、動画が再生されるまで、少し待ち時間が生じます。
バッファリング中は、バッファリング中であることを表す表示器を表示するように、処理を追加します。
動画を鑑賞中は、通常、画面の操作を行いません。しばらく画面の操作を行わないと、スリープ機能により、画面が消灯してしまいます。
本アプリをフォアグラウンドにしている間は、画面がONのままで、画面が消灯しないように、処理を追加します。
実装
プロジェクトを開く
「04.フルスクリーン表示をできるようにする」で作成したプロジェクトを開きます。
レイアウトの編集
バッファリング中であることを表す表示器を、ProgressBarとして設置します。
「Project」ペインの「app > res > layout > activity_main.xml」を開きます。
activity_main.xml に以下を追加します。
activity_main.xm 全体としては、以下のようにします。
メインアクティビティクラスの編集(ビューの取得)
メインアクティビティクラスの、メンバー変数として、以下を追加します。
- バッファリング中に表示する ProgressBarのオブジェクト
メインアクティビティクラスの、onCreate関数に、ビューを取得する処理を追加します。
「Project」ペインの「app > java > ドメイン.アプリ名 > MainActivity」を開きます。
メインアクティビティクラス全体としては、以下のようにします。
「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。
メインアクティビティクラスの編集(バッファリング中に表示するProgressBarの表示/非表示)
メインアクティビティクラスに、以下のコードを追加します。
- メンバー変数に、Playerリスナーの定義
- Playerリスナーに、onPlaybackStateChanged関数を追加し、バッファリング中に表示するProgressBarの表示/非表示の処理
- onCreate関数にて、SimpleExoPlayerオブジェクトに、定義したPlayerリスナーを追加する処理
「Project」ペインの「app > java > ドメイン.アプリ名 > MainActivity」を開きます。
メインアクティビティクラス全体としては、以下のようにします。
「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。
メインアクティビティクラスの編集(画面をONのままにする対応)
メインアクティビティクラスの、onCreate 関数内に、「画面をONのままにする」処理を追加します。
メインアクティビティクラスの、onCreate 関数を、以下のようにします。
「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。
実行
Android端末にて、動作確認。
アプリを起動すると、動画が再生、表示されます。
バッファリング中は、画面中央に、円形の表示器が表示されます。
本アプリをフォアグラウンドにしている間は、画面がONのままで、画面は消灯しません。