LoginSignup
0
0

More than 1 year has passed since last update.

Kotlin(+Chart.js)で地図アプリ(ゴミ拾いアプリ)。(15日目)

Last updated at Posted at 2022-01-06

今日やったこと

・Korlinで音を鳴らす(送信成功 or 失敗時に効果音を再生)
・設定画面に、効果音に関する項目を作成
・WEBにChart.jsを使ってグラフを作成

効果音を付けた理由

クルマで移動中に見つけた、ポイ捨てゴミを回収する際に、車内に設置しているタブレット端末で、位置情報を登録しているのですが、ボタンをタップした後、送信が成功したかどうかの確認の際に、画面を見るのが面倒だったので、音で確認出来たら便利だと思い、効果音機能を付けてみました。

Kotlinで音を鳴らす方法

ネットで調べると「MediaPlayer」「AudioTrack」「SoundPool」を使えば良さそうです。
今回は、MediaPlayerを使ってみます。

リソース作成

リソースフォルダに「raw」フォルダを作成して、その中に音楽ファイルを入れると動くようです。

[res]
->[raw]
->[音楽ファイル]

効果音用のデータは、以下の商用利用可能なフリー素材を配布されているサイトからお借りました。

この中の

・メニューを開く1 アニメ風
・メニューを開く2 ブォン。重低音

この2つを、送信成功用と、失敗用で使わせてもらいます。

[raw]フォルダに保存
イメージ7526.jpg

リネーム
イメージ7521.jpg

コード

OKとERRORの場合で、異なる効果音を出すだけのシンプルな関数を作ってみました。
setOnCompletionListener で、再生終了後、release()を呼び出しています。
kotlinは、まだよくわかってないので書き方はよくないかもです。

※修正[2022-01-06 19:03]

(sample)
     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() }
    }

エミュレーターのボリューム調整

説明不要かもですが、エミュレーターでもサウンド再生可能です。
音が出ない場合は、ミュートや、ボリュームが下がっているかもしれません。

イメージ7524.jpg

設定画面に効果音の項目追加

先日作成した設定画面に効果音の項目を追加

※画像をクリックするとGIF動画を再生できます

効果音設定.gif

これで、一応完成。

その他

停止や、シークなど、再生を制御するメソッドがあったので、ちょっとした音楽再生プレイヤーソフトなら、MediaPlayerを使う事で、簡単に作れそうな気がします。

JavaScript + Chart.jsでグラフを作成

WEBサイトに、Chart.jsを使ってグラフを追加してみました。

参考サイト:

MySQLデータベース上のデータ量が少ないので、サンプルコードをほぼそのまま使っています。

イメージ7531.png

動作画面:

※画像をクリックするとGIF動画を再生できます

JavaScript -Chat.gif

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0