04.再生位置を変更できるようにする
再生位置を変更できるようにします。
解説
SeekBarで、再生位置を変更できるようにします。
本項で実施している内容は、以下です。
- シークバーのトラッキングに関する処理を追加します。
- ユーザーがシークバーをシークしているときは、シークバーの再生位置表示更新処理を行わないようにします。
実装
プロジェクトを開く
「03.一時停止、再開、10秒スキップをできるようにする」で作成したプロジェクトを開きます。
メインアクティビティクラスの編集(シークバーのトラッキング処理)
シークバーのトラッキングに関する処理を追加します。
メインアクティビティクラスに、以下のコードを追加します。
- メンバー変数に、シークバーをタッチしているかのフラグ変数
- メンバー変数に、シークバーチェンジリスナーの定義
- onCreate関数にて、定義した「シークバーチェンジリスナー」を、シークバーオブジェクトに設定する処理
「Project」ペインの「app > java > ドメイン.アプリ名 > MainActivity」を開きます。
メインアクティビティクラス全体としては、以下のようにします。
「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。
メインアクティビティクラスの編集(動画位置表示の更新の関数定義の修正)
ユーザーがシークバーをシークしているときは、シークバーの再生位置表示更新処理を行わないようにします。
メインアクティビティクラスの 「動画位置表示の更新」の関数の、「SeekBarオブジェクトのプログレスの設定」処理を、「シークバーをタッチしていないときのみ」処理されるように変更します。
「再生位置表示の更新」の関数を、以下のようにします。
「Cannot resolve symbol」エラーは、「Alt + Enter」で、必要なクラスをimportします。
実行
Android端末にて、動作確認。
アプリを起動すると、動画が再生、表示されます。
画面下部に、再生位置テキスト、再生位置バーが表示されます。
つまみを移動すると、再生位置が変わります。
ダウンロード
関連ページ
前項目:03.一時停止、再開、10秒スキップをできるようにする
次項目:05.再生コントローラーを非表示にできるようにする