大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

【Android】メトロノームアプリの作成【Kotlin】

著者:北本 敦
公開日:2021/06/10
最終更新日:2021/06/10
カテゴリー:技術情報
タグ:

北本です。

最近、Androidプログラミングの勉強を始めました。
Android StudioでKotlinを使ってのプログラミングに挑戦しており、『はじめてのAndroidプログラミング 第5版』(金田浩明著, SBクリエイティブ)を参考書にしています。

練習がてら非常に簡単なアプリを作成してみたので紹介します。最低限の機能のみを備えたメトロノームです。

 

仕様

画面は上掲画像のようなものとします。

入力欄にBPM値(一分間の拍数)をキー入力し、「START」ボタンをタップすると、再生状態になり指定したテンポでの拍に合わせて音が鳴ります。再生状態になるとボタンのテキストが「START」から「STOP」に変化し、それをタップすると再生状態から抜けます。

設定可能なBPM値は、1~300の整数とし、異常値が設定された状態で「START」ボタンをタップした場合は、エラーメッセージを表示し再生状態に遷移しないものとします。

再生状態中は、入力欄が使用不可となりBPM値の変更ができないものとします。

また、メトロノームは再生しながら楽器を弾くような使い方が想定されるため、再生状態中は操作せずに放置してもスリープ状態にならないようにします。

 

下準備

Android Studioで、Empty Activityを選択し、名前を「metronome」、言語を「Kotlin」としてプロジェクトを作成します。

非常に短い音声ファイルbeat.oggを用意し、app/resにrawフォルダを作成し、その中に配置します。

ビューバインディングを有効にするため、build.gradle (Module: metronome.app)のandroid{}内に以下のように追記し、Sync Nowで変更を適用します。

 

レイアウト

「BPM」のテキスト表示をTextViewとして、BPM値の入力欄をNumber (Signed)として、「START」ボタンをButtonとして配置します。idは以下のように設定することとします。

ビューid
TextViewtextViewBPM
Number (Signed)editTextBPM
ButtonbuttonStart

レイアウトの詳細については説明を割愛しますが、以下のようなxmlファイルになっています。

activity_main.xml

 

実装

肝要となるのは、
・Handlerを使ったタイマー処理
・SoundPoolを使った音声再生
・FLAG_KEEP_SCREEN_ONのON/OFFによるアイドル状態での自動スリープの無効/有効化
です。

MainActivity.kt

 

以下は、アプリをエミュレータで動作させた様子の動画です。
音声をONにしてご覧ください。

    上に戻る