ホーム > プログラミング > Android動画再生アプリを作る ( ExoPlayer + SurfaceView ) > 08.バッファリング中の対応、画面をONのままにする対応

08.バッファリング中の対応、画面をONのままにする対応



バッファリング中の対応、画面をONのままにする対応を行います。

解説

再生開始直後やスキップ直後は、バッファリングが行われ、動画が再生されるまで、少し待ち時間が生じます。
バッファリング中は、バッファリング中であることを表す表示器を表示するように、処理を追加します。

動画を鑑賞中は、通常、画面の操作を行いません。しばらく画面の操作を行わないと、スリープ機能により、画面が消灯してしまいます。
本アプリをフォアグラウンドにしている間は、画面がONのままで、画面が消灯しないように、処理を追加します。

実装

プロジェクトを開く

07.フルスクリーン表示をできるようにする」で作成したプロジェクトを開きます。

レイアウトの編集

バッファリング中であることを表す表示器を、ProgressBarとして設置します。

「Project」ペインの「app > res > layout > activity_main.xml」を開きます。

activity_main.xml に以下を追加します。

activity_main.xm 全体としては、以下のようにします。

メインアクティビティクラスの編集(ビューの取得)

メインアクティビティクラスの、メンバー変数として、以下を追加します。

メインアクティビティクラスの、onCreate関数に、ビューを取得する処理を追加します。

「Project」ペインの「app > java > ドメイン.アプリ名 > MainActivity」を開きます。

メインアクティビティクラス全体としては、以下のようにします。


「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。

メインアクティビティクラスの編集(バッファリング中に表示するProgressBarの表示/非表示)

メンバー変数として定義された、Playerリスナーに、onPlaybackStateChanged関数を追加し、バッファリング中に表示するProgressBarの表示/非表示の処理を追加します。

メインアクティビティクラスのPlayerリスナーの定義としては、以下のようにします。


「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。

メインアクティビティクラスの編集(画面をONのままにする対応)

メインアクティビティクラスの、onCreate 関数内に、「画面をONのままにする」処理を追加します。

メインアクティビティクラスの、onCreate 関数を、以下のようにします。


「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。

実行

Android端末にて、動作確認。

アプリを起動すると、動画が再生、表示されます。

バッファリング中は、画面中央に、円形の表示器が表示されます。
本アプリをフォアグラウンドにしている間は、画面がONのままで、画面は消灯しません。

ダウンロード

サンプルコード

github.com上のリポジトリページ

関連ページ

前項目:07.フルスクリーン表示をできるようにする


ご意見、ご感想、ご質問、ご要望等は、「コメントを投稿する」もしくは「ホーム > コンタクト」よりお願いいたします。
内容の誤り、誤字脱字、リンクミスなどの問題点を発見された場合には「コメントを投稿する」もしくは「ホーム > コンタクト」より連絡していただけると幸いです。


Copyright (c) 2005-2018 Nobuki HIRAMINE All rights reserved.