前提・実現したいこと
kotlinでandroid開発をしています。startボタンを押すと振動が始まり、振動の強さを0.1秒ごとに変えていくアプリを作ろうとしています。以下のコードを実行したところ「ここからここまで」と書いてあるループがあるにもかかわらず、振動が1回しか実行されませんでした。しかしテキストボックスを使ってiのカウントをしたところループは10回実行されていました。これはなぜなのか知りたいです。repeatの中でVibrationEffectは使えないのでしょうか。よろしくお願いします。
発生している問題・エラーメッセージ
vibrator.vibrate(vibrationEffect)が一度しか実行されない
該当のソースコード
kotlin
1 2class MainActivity : AppCompatActivity(){ 3 4 var gTime:Long = 10 5 var gHz = 100 6 private var i=1 7 8 @RequiresApi(Build.VERSION_CODES.O) 9 override fun onCreate(savedInstanceState: Bundle?) { 10 super.onCreate(savedInstanceState) 11 setContentView(R.layout.activity_main) 12 13 start.setOnClickListener { 14 val vibrator = getSystemService(VIBRATOR_SERVICE) as Vibrator 15 repeat(10) {//ここから 16 var vib=(gHz*sin(2 * Math.PI * i / gTime)+gHz)/2 17 val vibrationEffect = VibrationEffect.createWaveform(longArrayOf(100), intArrayOf(vib.toInt()), -1) 18 vibrator.vibrate(vibrationEffect) 19 i++ 20 }//ここまで 21 } 22 } 23}
試したこと
vibの値を簡単にしたりしましたがだめでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。