音楽プレイヤー

【Android Studio】シンプルな音楽プレイヤーの作り方 第4回 「再生位置と音量調節」

ここまでの記事はこちら
 

ここまで音声の再生・一時停止機能を実装してきました。

今回は再生位置と音声の調節のSeekBarを動くようにしていきます。

MainActivity.javaを開いて始めていきましょう!
 


 

音量調節

8~26行目を追加します。

* コードを書く前に
途中で候補が出てくるので、これを選択すると簡単にコードを追加できます。


 
 

 

12行目

public void onProgressChanged(SeekBar seekBar, int i, boolean b) {

今回使うのがこの部分で、SeekBarが動かされた時に呼ばれます。

「int i」は SeekBarの位置です。
「boolean b」はユーザーによってSeekBarが変更されたかどうかをチェックできます。

「i, b」では何を意味するのか分かりにくいので、あとで変更します。

 

17行目

public void onStartTrackingTouch(SeekBar seekBar) {

SeekBarのタッチが始まった時に呼ばれます。今回は使いません。
 

22行目

public void onStopTrackingTouch(SeekBar seekBar) {

SeekBarのタッチが終わった時に呼ばれます。今回は使いません。
 
 

音量を変える

3行目のintとbooleanの名前を変更して、4,5行目を追加します。

 
 

activity_main.xmlでandroid:max="100"を設定したので、progressは0~100の数値で取得できます。
 

 

setVolumeはfloat型で0.0 ~ 1.0の値を設定する必要があります。

progress / 100f をして、float型の0.0 ~ 1.0の範囲の値にしてから音量をセットしましょう。

float volumeNum = progress / 100f;
mp.setVolume(volumeNum, volumeNum);

 

これで音量調節は完了です!

 
 

音楽ファイルの長さを設定

音量調節SeekBarの最大値「android:max="100"」はactivity_main.xmlで設定しました。
音量は音楽ファイルによって変わることがないからです。

一方、再生位置の「android:max」は音楽ファイルの長さによってバラバラです。
30秒のファイルもあれば、5分のファイルもあるので、最大値は曲によって変わります。

ですので、再生位置の最大値はMainActivity.java側で音楽ファイルを読み込んでから設定します。
 

9,25行目を追加します。

 
 

25行目

totalTime = mp.getDuration();

音楽ファイルの長さをミリ秒で取得します。

 
 

再生位置を変える

6~28行目を追加します。

 

7行目

positionBar.setMax(totalTime);

先ほど取得したtotalTimeを最大値として設定します。
 

12行目

if (fromUser) {

音量調節では書きませんでしたが、ここでは「ユーザーが変更した場合」という判定を入れました。

次回、HandlerとThreadを使ってSeekBarの再生位置と再生時間ラベルが自動的に更新されるようにしていきます。

この場合はユーザーが再生位置を変更するのではありません。

このようにユーザーが変更しない場合もあるので、if (fromUser) 判定を入れておきます。

 

13行目

mp.seekTo(progress);

メディアプレイヤーの再生位置を変更します。

 

14行目

positionBar.setProgress(progress);

SeekBarの再生位置を変更します。

 
 

アプリを実行する

エミュレーター、または実機でアプリを起動してみてください。
 

現時点でのデモ動画(音が出ます)

 
 

次に行うこと

次回は総仕上げとして

  • 経過時間ラベルと残り時間ラベルの表示
  • 再生位置のSeekBarを経過時間にあわせて動くようする

の2つを実装していきます。

第5回 「再生位置と経過時間の更新」に進む
 

ここまでのコード

 

ABOUT ME
Sara
Sara
「わかりやすく・シンプル」をモットーに、携帯アプリ・ウェブアプリの作り方を紹介します。 独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています🙂
独学は難しそうと感じたら

 
独学でプログラミングを勉強するのは難しそう、効率的にプログラミングを学びたいという方はオンラインスクールがオススメです。

オンラインスクールを選ぶときのポイント

  • 無料体験があること
  • 個別サポートがあること

自分にあったスタイルを見つけるために、無料体験のご利用をオススメします。(無料体験後に自分には合わないなと感じたらハッキリ断ってしまって問題ありません。)
 
個別サポートもプログラミング学習に挫折しないために重要なポイントです。エラーや困った時にすぐに個別対応をしてくれるスクールを利用して下さい。

ここでは3つのオンラインスクールを紹介します。
全て無料体験がありますので、ぜひ自分に合ったスクールを見つけてみて下さい????
 

1. TechAcademy(テックアカデミー)

オンライン完結で勉強できるスクールで、コースがとても充実しています。チャットで質問すればすぐに回答を得られるのが一番のおすすめポイントです。
オリジナルのサービスやアプリの開発もサポートしてくれるので、開発したいものが決まっている人にもオススメです。

無料体験はこちら

2. CodeCamp(コードキャンプ)

一対一で受講できる個別指導のプログラミングスクールです。
Webデザイン・Webサービス開発・アプリ開発などを幅広く学習することができます。
マンツーマンなので自分のペースで学習できて、質問もその都度できるのがメリットです。

無料体験レッスンはこちら

3. Treehouse

英語でも良い、英語とプログラミングを同時に勉強したいという方は Treehouse がオススメです。月25ドルで始めることができて、たくさんのプログラミング言語を学ぶことができます。
個別サポートはありませんが、掲示板が充実しています。ほとんどの場合、質問してから30分程度で回答を得ることができます。

7日間の無料体験はこちら

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA