実現したいこと
簡易的なピアノアプリを作ろうと思っています。
ボタンを押している間だけ音が鳴り、離すと音が止まるようにしたいと思っています。
発生している問題
以下のようなコードを作りました。
アプリ起動後1回目にボタンを押したときは音が再生され、指を離すと再生途中でも停止します。
しかし2回目以降は再生途中に指を離しても停止しません。
これはなぜでしょうか。
また、2回目以降も指を離したときに停止するようにはどうしたらよいのでしょうか?
どなたかご回答いただければ幸いです。
kotlin
1 button.setOnTouchListener(View.OnTouchListener { view, motionEvent -> 2 when (motionEvent.action) { 3 MotionEvent.ACTION_DOWN -> { 4 soundPool.play(soundResId, 1.0f, 1.0f, 0, 0, 1.0f) 5 } 6 } 7 return@OnTouchListener false 8 }) 9 10 button.setOnClickListener(View.OnClickListener{ 11 soundPool.stop(soundResId) 12 })
試したこと
以下のようにwhenでACTION_UPも作ってみましたができませんでした。
kotlin
1button.setOnTouchListener(View.OnTouchListener { view, motionEvent -> 2 when (motionEvent.action){ 3 MotionEvent.ACTION_DOWN -> { 4 soundPool.play(soundResId, 1.0f, 1.0f, 0, 0, 1.0f) 5 } 6 MotionEvent.ACTION_UP -> { 7 soundPool.stop(soundResId) 8 } 9 } 10 return@OnTouchListener false 11 })
実行環境
windows10
androidstudio3.5
kotlin 1.3.60
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/01 08:52 編集
2019/12/01 12:47