Closed kogepan159 closed 4 years ago
countが動いていますね。。。
func timerStart() {
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(timerCountDown), userInfo: nil, repeats: true)
}
StopしたからStartする時に、上記が呼ばれます。 20秒タイマーが動く前に、インターバルのタイマーが1秒だけ動き始める仕組みになっていますね。。。。
・ワークアウトのタイマー ・インターバルのタイマー を別々の変数をして、定義してあげた方がいいかもしれないですね、
下記の時もマイナスになるので、ReStart処理をかけるようにしてください〜!
最初は、ボタンにidタグをと考えいましたが、1つしかボタンは「sender.tag」でidが付与できず。→ あれこれ試してみてはものの、マイナスカウントを修正処理がわかりません。。
修正処理がわからないことは理解できました。どういう原理でマイナスになっているか、説明してもらってもいいですか?
ここの処理の中身を見てください。 https://github.com/MaitoMisao/Tabata/blob/develop/Tabata/Controller/ViewController.swift?fbclid=IwAR1-QyyJY2xxKFUgpKrQBV3dN577Vmk6mfIKkoREfMT50rEN3Pkd49_V28w#L132 Buttonを押された時に20秒のときでも、10秒のタイマーが動いていませんか?? 20秒のタイマーが動いているときは、20秒のタイマーだけ動かしたいですよね〜 (count, workoutCountをうまく使えば、うまくできる気がします。)
2つ目は音声の処理で、ボタンを押した際に一時停止soundFile.player?.pause()と、再開した際にsoundFile.player?.play()を記述しても、AVAudioPlayerが生成されてしまいワークアウト中はボタンを押せば、どのタイミングでも音声ファイルが鳴ってしまうバグです。
これはバグがなくて、下記で皆川さんが実装していますよ。 https://github.com/MaitoMisao/Tabata/blob/develop/Tabata/Controller/ViewController.swift?fbclid=IwAR1-QyyJY2xxKFUgpKrQBV3dN577Vmk6mfIKkoREfMT50rEN3Pkd49_V28w#L134
やりたいことを文章にしてから、実装するといいかもしれないですね。
3秒前になったら、音楽を流したい。 この間にSpotボタンを押されたら、音楽をとめたい。 残り3秒以内の時のみ、音楽を再開したい。 それ以外のときは音楽を再生しない。
Timerマイナス問題
下記を必要なタイミングで呼び出した方がいいですね。 そこは調べてみてくださいー self.count = 11 self.workoutCount = 21
音が止まらない問題
これを参考にしてやってみてください https://qiita.com/yusuzuki/items/5a4493d1def86bd33f90