100%」にて『Androidプログラミング講座』として連載していた時の記事を公開します。2月号」に寄稿した第2回目の原稿を公開します。本日の更新では、残っていた「猫ピアノ」実装のロジック部分の開発について紹介します。アニメーションのロジック実装はそれほど難しいものではありませんので、実装方法について是非この機会にみにつけて下さい。-●起動時の初期化処理を定義しようアニメーションの定義が終わったら、次はいよいよ本体のロジックを作成していきましょう。組み込むパッケージから定義しましょう。(A)が、パッケージの定義部分です。このうち、(B)はアニメーションを実行するためのもの、(C)がMP3ファイルを再生させるためのパッケージとなります。*組み込むパッケージ*今回もクラスの先頭で、メディアプレイヤーの宣言を行っています。綺麗なメロディを流すために、ここでは配列を利用して5つのメディアプレイヤーを宣言しています。*メディアプレイヤーの宣言*アプリケーション起動時に最初に呼び出されるメソッド「onCreate()」の中では、下図にあるように、3つの定義を行っています。(A)は終了ボタンのイベントが拾えるように定義しています。(B)は、画面上に定義したアイコンをタッチしたとき、処理が行われるように、各アイコンに対してイベントリスナーを設定しています。(C)でアイコンをクリックした時に鳴るMP3ファイルをメディアプレイヤーで再生するオブジェクトとして作成しています。オブジェクトの作成には、「MediaPlayer.create()」というメソッドを利用しています。引数に「NekoPianoActivity」クラスのContextとして”this”を指定し、第二引数には再生させるMP3ファイルのリソースを指定しています。*onCreate()での初期化処理*●アニメーションとオーディオの再生処理を作ろう今回の肝となるのが、アイコンが押された時の処理です。アイコンが押された時の処理は、「onClick()」のメソッドでイベントを取得し、実行します。下図をご確認ください。*ボタンが押された時の処理*(A)の部分でアニメーションとオーディオ再生に必要な変数を宣言しています。(B)(C)(D)の部分が、アイコンがクリックされた時に行われる処理になります。(B)は、クリックされたアイコンを識別し、対象のアイコンに応じてSequence:02で作成したアニメーションのリソースを指定し、再生するMP3のリソースを指定しています。アニメーションのリソース指定には「AnimationUtils.loadAnimation()」というメソッドを使用し、第一引数に”this”、第二引数に再生するリソースを読み込んでいます。ここでは、例えばドの場合、”R.anim.move001′′を読み込んでいます。(C)では(B)で読み込まれたリソースを元に、「startAnimation()」で指定したアイコンのアニメーションを開始します。最後に、(D)の部分でMP3のオーディオ再生を行います。オーディオ再生の準備として、現在対象のオブジェクトでオーディオ再生が行われていないかを、「isPlaying()」で確認します。現在再生中(true)であった場合は、まず「pause()」でオーディオ再生を一時停止状態にし、「seekTo()」で現在の再生位置を先頭に戻しています。「seekTo()」の引数が”0′′なのは、先頭から0ミリ秒経過したところを先頭とするための指定、つまり、先頭を指定しているのです。準備ができたら、「start()」を呼び出し、オーディオ再生を開始します。*オーディオ再生の概要*●後処理を忘れないようにしよう最後にひとつ、MediaPlayerクラスを利用した場合には忘れてはいけないことがあります。それは、アプリケーション終了時の、MP3ファイルから作成したオーディオオブジェクトの解放処理です。終了処理として、図:3-3-001にあるように「onDestroy()」を定義し、(A)にあるようにメディアプレイヤーの終了処理を追加する必要があります。(A)ではfor文を使用してメディアプレイヤーのオブジェクト個数分、ループを回しています。(ここでは5つのオブジェクトを登録しているので、5回ループする)その中では、(B)の「stop()」でメディアプレイヤーを停止し、(C)の「「release()」でオブジェクトの解放を行っています。これで、「猫ピアノ」の完成です。難しかったでしょうか?次回はもっと面白いことに挑戦していきましょう。Market公開後、非常に稀ですが、オブジェクト解放の不正エラーを2度ほど受け取っています。今後、その原因が分かり次第、更新させていただきたいと思います。これで、第2回も終了となりました。明日からは第3回の内容を公開していきます。PMandroidアプリ開発初心者のものです。こちらの記事、大変参考になりました。ありがとうございました。コメントありがとうございます。合わせて、返信が遅くなりスミマセン!もう少し参考になる記事をどんどん書いていこうと思いますので、宜しくお願い致します。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。