前提・実現したいこと
startボタンを押したら振動が始まり、0.1秒ごとの振幅を並べたときsinカーブを描くような振動パターンを作りたいと考えています。以下のコードで0.1秒ごとに戻り値Hzが変化していくようにしたいです。
発生している問題・エラーメッセージ
アプリが落ちる
該当のソースコード
kotlin
1class MainActivity : AppCompatActivity() { 2 3 var gTime:Long = 1 4 var gHz = 100 5 6 private var Hz=1 7 private var i=0 8 9 @RequiresApi(Build.VERSION_CODES.O) 10 override fun onCreate(savedInstanceState: Bundle?) { 11 super.onCreate(savedInstanceState) 12 setContentView(R.layout.activity_main) 13 14 start.setOnClickListener { 15 val vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator 16 val vibrationEffect = VibrationEffect.createWaveform(longArrayOf(100), main(), 0) 17 vibrator.vibrate(vibrationEffect) 18 } 19 stop.setOnClickListener{ 20 val vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator 21 vibrator.cancel() 22 } 23 } 24 25 private fun main(): IntArray { 26 val increase: (Int) -> () -> Int = { x: Int -> 27 var xx = x 28 { -> xx++ } 29 } 30 val f = increase(1) 31 Hz=sin(gHz*2*Math.PI*f()/gTime).toInt() 32 33 34 return (0 until 10).map { Hz }.toIntArray() 35 } 36}
試したこと
https://teratail.com/questions/130401
ここのコードを参考にしようとしましたがうまくkotlinに変換できませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/24 04:55
2021/01/24 05:06
2021/01/24 06:23
2021/01/24 07:08
2021/01/24 07:30