ホーム > プログラミング > Android動画再生アプリを作る ( ExoPlayer + SurfaceView ) > 03.再生位置の表示と変更をできるようにする

03.再生位置を表示できるようにする



再生位置を表示できるようにします。

解説

テキストで、再生位置と動画長さを表示するようにします。
SeekBarで、再生位置を表示するようにします。

本項で実施している内容は、以下です。

実装

プロジェクトを開く

02.動画の縦横比を補正する」で作成したプロジェクトを開きます。

メインアクティビティのレイアウトの編集

メインアクティビティのレイアウトに、以下の変更を加えます。

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

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

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

再生位置表示用のビューを取得する処理を追加します。

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

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

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

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


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

メインアクティビティクラスの編集(動画長さの設定)

メインアクティビティクラスの Playerリスナーの関数の定義に、「動画長さの設定」の処理を追加します。

メインアクティビティクラスの Playerリスナーの関数を以下のようにします。


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

メインアクティビティクラスの編集(動画位置表示の更新の関数定義)

メインアクティビティクラスに 動画位置の更新の関数の定義を追加します。
動画位置の更新の処理は以下です。

  1. 動画の再生位置の取得
  2. 動画の再生位置で、再生位置表示用のTextViewオブジェクトのテキストを設定
  3. 動画の再生位置で、再生位置表示用のSeekBarオブジェクトのプログレスを設定

メインアクティビティクラスの末尾に、以下を追加します。


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

メインアクティビティクラスの編集(再生位置表示の定期更新の開始と停止)

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

再生位置表示の定期更新の開始と停止の処理を追加します。

  1. 「初回表示時、および、ポーズからの復帰時」に呼ばれる関数である onResume 関数に、「再生位置表示の定期更新の開始」処理を記述します。
  2. 「アクティビティがフォアグラウンドからバックグラウンドに追いやられた時」に呼ばれる関数である onPause 関数に、「再生位置表示の定期更新の停止」処理を記述します。

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


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

実行

Android端末にて、動作確認。

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

画面下部に、再生位置テキスト、再生位置バーが表示されます。

ダウンロード

サンプルコード

関連ページ

前項目:02.動画の縦横比を補正する

次項目:04.再生位置を変更できるようにする


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


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