MaitoMisao / Tabata

0 stars 1 forks source link

Timerマイナス問題&音が止まらない問題 #3

Closed kogepan159 closed 4 years ago

kogepan159 commented 4 years ago

Timerマイナス問題

下記を必要なタイミングで呼び出した方がいいですね。 そこは調べてみてくださいー self.count = 11 self.workoutCount = 21

音が止まらない問題

これを参考にしてやってみてください https://qiita.com/yusuzuki/items/5a4493d1def86bd33f90

kogepan159 commented 4 years ago

Timerマイナス問題

countが動いていますね。。。

func timerStart() {
        timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(timerCountDown), userInfo: nil, repeats: true)
    }

StopしたからStartする時に、上記が呼ばれます。 20秒タイマーが動く前に、インターバルのタイマーが1秒だけ動き始める仕組みになっていますね。。。。

・ワークアウトのタイマー ・インターバルのタイマー を別々の変数をして、定義してあげた方がいいかもしれないですね、

下記の時もマイナスになるので、ReStart処理をかけるようにしてください〜!

  1. Finishになる
  2. タイマーを押す
  3. マイナスの値が表示される
kogepan159 commented 4 years ago

最初は、ボタンに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をうまく使えば、うまくできる気がします。)

kogepan159 commented 4 years ago

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秒以内の時のみ、音楽を再開したい。 それ以外のときは音楽を再生しない。