#今日やったこと
・Korlinで音を鳴らす(送信成功 or 失敗時に効果音を再生)
・設定画面に、効果音に関する項目を作成
・WEBにChart.jsを使ってグラフを作成
#効果音を付けた理由
クルマで移動中に見つけた、ポイ捨てゴミを回収する際に、車内に設置しているタブレット端末で、位置情報を登録しているのですが、ボタンをタップした後、送信が成功したかどうかの確認の際に、画面を見るのが面倒だったので、音で確認出来たら便利だと思い、効果音機能を付けてみました。
#Kotlinで音を鳴らす方法
ネットで調べると「MediaPlayer」「AudioTrack」「SoundPool」を使えば良さそうです。
今回は、MediaPlayerを使ってみます。
#リソース作成
リソースフォルダに「raw」フォルダを作成して、その中に音楽ファイルを入れると動くようです。
[res]
->[raw]
->[音楽ファイル]
効果音用のデータは、以下の商用利用可能なフリー素材を配布されているサイトからお借りました。
この中の
・メニューを開く1 アニメ風
・メニューを開く2 ブォン。重低音
この2つを、送信成功用と、失敗用で使わせてもらいます。
#コード
OKとERRORの場合で、異なる効果音を出すだけのシンプルな関数を作ってみました。
setOnCompletionListener で、再生終了後、release()を呼び出しています。
kotlinは、まだよくわかってないので書き方はよくないかもです。
※修正[2022-01-06 19:03]
private fun soundPlay(flg:String){
var sound:MediaPlayer? = when(flg){
"OK" -> MediaPlayer.create(this,R.raw.send_ok)
"ERROR" -> MediaPlayer.create(this,R.raw.send_error)
else -> return
}
sound?.start()
sound?.setOnCompletionListener { _ -> sound?.release() }
}
#エミュレーターのボリューム調整
説明不要かもですが、エミュレーターでもサウンド再生可能です。
音が出ない場合は、ミュートや、ボリュームが下がっているかもしれません。
#設定画面に効果音の項目追加
先日作成した設定画面に効果音の項目を追加
※画像をクリックするとGIF動画を再生できます
これで、一応完成。
#その他
停止や、シークなど、再生を制御するメソッドがあったので、ちょっとした音楽再生プレイヤーソフトなら、MediaPlayerを使う事で、簡単に作れそうな気がします。
#JavaScript + Chart.jsでグラフを作成
WEBサイトに、Chart.jsを使ってグラフを追加してみました。
参考サイト:
MySQLデータベース上のデータ量が少ないので、サンプルコードをほぼそのまま使っています。
動作画面:
※画像をクリックするとGIF動画を再生できます