teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2017/01/08 03:09

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -25,7 +25,10 @@
25
25
  } else {
26
26
 
27
27
  //停止
28
+
29
+ // 以下を追加
28
30
  timer.invalidate()
31
+
29
32
  Music01.stop()
30
33
 
31
34
  //アニメーション停止処理

1

修正

2017/01/08 03:09

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -1,3 +1,51 @@
1
1
  `Swift3`ではありませんが以下のサイトで同じ事を解説してます、参考になると思います。
2
2
 
3
- 参考URL: [Swiftでオーディオプレイヤー:UISliderの設置と、曲の再生時間や再生箇所との同期](http://bick.xyz/archives/243)
3
+ 参考URL: [Swiftでオーディオプレイヤー:UISliderの設置と、曲の再生時間や再生箇所との同期](http://bick.xyz/archives/243)
4
+
5
+ とりあえず動いたので変更部分だけ載せておきます。
6
+
7
+ ```swift
8
+ // 以下を追加
9
+ var timer = Timer()
10
+
11
+ //音楽を再生するスイッチを作成
12
+ @IBAction func playSwitch(_ sender: UISwitch) {
13
+ NSLog("\(sender.isOn)")
14
+
15
+ //再生
16
+ if sender.isOn == true {
17
+ Music01.play()
18
+
19
+ //アニメーション開始の処理
20
+ animateStart(target: imgvMusic, key: "Move")
21
+
22
+ // 以下を追加
23
+ timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updatePlayingTime), userInfo: nil, repeats: true)
24
+
25
+ } else {
26
+
27
+ //停止
28
+ timer.invalidate()
29
+ Music01.stop()
30
+
31
+ //アニメーション停止処理
32
+ Music01.prepareToPlay()
33
+ Music01.currentTime = 0.0
34
+ slMusicSize.value = 0.0
35
+ animateEnd(target: imgvMusic, key: "Move")
36
+ }
37
+ }
38
+
39
+ //再生場所の設定
40
+ @IBAction func musicSizeChange(_ sender: UISlider) {
41
+ Music01.currentTime = TimeInterval(sender.value)
42
+
43
+ // 以下を追加
44
+ self.updatePlayingTime()
45
+ }
46
+
47
+ // 以下を追加
48
+ func updatePlayingTime() {
49
+ slMusicSize.value = Float(Music01.currentTime)
50
+ }
51
+ ```