回答編集履歴
1
コードはコードの表記にしたかったから
answer
CHANGED
@@ -1,17 +1,21 @@
|
|
1
1
|
全然検討違いの回答だったらごめんなさい。気になったり、こうじゃないかなってこと書いて見ます。
|
2
2
|
<気になる1>
|
3
|
-
func playSound(){
|
3
|
+
```func playSound(){
|
4
4
|
|
5
5
|
if player.isPlaying{
|
6
6
|
player.stop()
|
7
7
|
}
|
8
|
-
|
8
|
+
```
|
9
9
|
のところですが、音楽再生をストップする処理のように思えます。このplaySound()を予期せぬところで使っているなどはありませんか?
|
10
10
|
|
11
11
|
<気になる2>
|
12
|
-
あと、音楽再生などやアンメーションの処理がsuper.viewDidLoad()内に書いてあると、画面遷移後など音楽は再生されなくなってしまいます。その際は、
|
12
|
+
あと、音楽再生などやアンメーションの処理が```super.viewDidLoad()```内に書いてあると、画面遷移後など音楽は再生されなくなってしまいます。その際は、
|
13
|
+
```
|
13
|
-
|
14
|
+
override func viewWillAppear(_ animated: Bool) {
|
15
|
+
super.viewWillAppear(animated)
|
16
|
+
}
|
17
|
+
```
|
14
|
-
|
18
|
+
を作ってその中に処理を書いてあげる必要があります。がそれかなともおもったりしました。なので戻って来たりするのなら両方に音楽再生の処理を入れる感じになるかと思いました。
|
15
19
|
|
16
20
|
<気になる3>
|
17
21
|
すみません、内容について詳しく説明はできませんがplayer.prepareToPlay()の後にaudioPlayer.play()で音楽を再生するのですが、それはコード全体見れていないのでなんとも言えませんが、ちゃんとデバッグでその流れが通っていますでしょうか?
|
@@ -20,7 +24,7 @@
|
|
20
24
|
音楽再生のデリゲートはきっと自分のクラス内で行っていると思うのですが、そのさいデリゲートをselfにしていますでしょうか?他クラスならそのクラスにしないといけないきもしますが。
|
21
25
|
|
22
26
|
最後に一応自分が書いたことあるコード乗せておきますね!参考になれば嬉しいです。
|
23
|
-
|
27
|
+
```
|
24
28
|
let audioPath = Bundle.main.path(forResource: "Recollection", ofType:"mp3")!
|
25
29
|
let audioUrl = URL(fileURLWithPath: audioPath)
|
26
30
|
|
@@ -40,4 +44,5 @@
|
|
40
44
|
audioPlayer.prepareToPlay()
|
41
45
|
audioPlayer.play()
|
42
46
|
audioPlayer.numberOfLoops = -1
|
47
|
+
```
|
43
48
|
ちなみに最後のLoopは私は音楽をずっと流していたかったので入れただけなので、一回だったら確か1とかにすれば大丈夫なような。
|