おきらくミルフィーユさん

まったりしてもいられないが、なるようになれ。限りなく言語障害に近い私が私なりにコトバで伝えることができたらよいな。と思って始めました。

離した時じゃなく、タッチした時に音を出したいんだ

こどもが通ってる幼稚園に

おやじクラブなる

父親の団体があるんですが。

 

その中でさらに

おやじバンド

ってのがあって

それに入ってるんですが。

 

その中で効果音出すのに

もしかしたら使えるかもしれないなあ

って、音を出すアプリを作りまして。

 

こんなの。

和楽器の音を出すアプリ

 

よさこいの曲だったので

和楽器の音を出すアプリです。

 

「かーっ!」

 

っていうのは

時代劇にありがちな

あれ、あの音。

 

ビブラスラップ

っていうみたいだが

「かーっ!」の方が

みんなわかるってね。

 

数字と矢印は

再生速度を変える事で

音を変えようっていう趣向。

 

でも結局のところ

マイクが上手に拾ってくれなくて

アンプにも限りがあるから

 

お蔵入りとなりまして。

 

でももっぱらこどものおもちゃ

 

楽しいみたいです。

 

でも私は楽しくない。

 

なぜか。

 

こいつが完全体じゃなかったからです。

 

何が悪いか。

 

再生遅れ。

 

そう。

 

なんかちゃんとボタンのタップに

音がついてきてくれない。

 

Soundpoolならdelayが少ないというので

Soundpoolを使ってつくりました。

 

でも、時々遅れる。

イラっとする。

 

なので、まじめに取り組むことにした。

 

理由は簡単だった。

 

音がなるトリガは

ボタンをタップした時じゃなくて

ボタンをタップした後の指を離した時

になってた。

 

どうやらそういうように作りこんだようだ。

 

私はボタンをタッチした瞬間に音を鳴らしたいんだ!

指を離した時じゃないんだ!!

 

という訳で調べたところ

 

setOnClickListenerだと

離した時がトリガになるみたい。

 

そういう事かあ

つって、紆余曲折いろいろあって

結論として

setOnTouchListenerならいいんだけど

それだとタッチしても離しても

イベントを拾って来ちゃうから

タッチ限定にすれば

いけそうだぞと。

 

こういう事ですね。

 

binding.buttontsudsumi.setOnTouchListener { _ , event ->
    when(event.actionMasked)
    {
        MotionEvent.ACTION_DOWN ->
        {
            soundPool.play(soundtsudsumi, 1.0f, 1.0f, 1, 0, userrate3)
        }
        else ->
        {

        }
    }
    true
}

こんな風にタッチ限定にしてやる。

 

ACTION_DOWNがタッチした時ですね。

elseのルートは、つけとかないとkotlinさんに怒られます。

ちなみにACTION_UPは離した時だそう。

 

まぁ、上記のコードでも

perfomeclickがどうしたこうしたって

半分怒られてるけど

delayなく動いたからよし!

 

perfomeclickの件は

もう少し勉強しておきますわ。

※オーバーライドしなくちゃダメらしいけど。

 

#andloid
#kotlin
#setOnTouchListener
#setOnClickListener
#ボタンをタッチした時にイベントを拾いたい

#音ズレ対策

#リスナー

#タッチした時に音を出したい

#タップした時に音を出したい

#リスナーのイベント

 

★本日もご来訪ありがとうございました。★

 

お名前.com

こちらもいかがですか?

dヒッツやってみよう! 初回31日間無料の聴き放題サブスクをご紹介
焼きラーメン 焼きラーメンを簡単に作る
おきらくカレー めっちゃ簡単でおいしいカレーの作り方
マスタードソース マクドナルドのナゲットソース有効活用
マイマガジンの設定 マイマガジンを止める設定はここ
画面キャプチャ 簡単にPC画面のキャプチャができる
こく一番 チャーハンのおいしい店をご紹介
プログラミング的思考 「プログラミング的思考」という単語の罠