質問編集履歴

1

コードを全文表示しました。

2019/12/14 02:40

投稿

Shouka
Shouka

スコア34

test CHANGED
File without changes
test CHANGED
@@ -1,37 +1,67 @@
1
1
  Swift5で音楽プレイヤーを作ってみています。
2
2
 
3
- 同時に曲るよう
3
+ 2曲を同時に流しつつ、ボタンを押すとスピードが半分になる、と言ったことを実装したく、まずは2曲流してスピードも半分で流れるように実装したいのですが
4
+
5
+
4
6
 
5
7
  ```swift
6
8
 
7
- let mixer = AKMixer(player, originalplayer)
9
+ import UIKit
8
10
 
11
+ import AudioKit
12
+
13
+
14
+
15
+ class ViewController: UIViewController {
16
+
17
+ var player: AKPlayer!
18
+
19
+ var originalplayer: AKPlayer!
20
+
21
+
22
+
23
+ override func viewDidLoad() {
24
+
25
+ super.viewDidLoad()
26
+
27
+
28
+
29
+ // 2曲同時に流す
30
+
31
+ let file1 = try! AKAudioFile(readFileName: "1.wav")
32
+
33
+ player1 = AKPlayer(audioFile: file1)
34
+
35
+ let file2 = try! AKAudioFile(readFileName: "2.wav")
36
+
37
+ player2 = AKPlayer(audioFile: file2)
38
+
39
+ let mixer = AKMixer(player1, player2)
40
+
9
- AudioKit.output = mixer
41
+ AudioKit.output = mixer
42
+
43
+  // 曲の速度を半分にする
44
+
45
+ variSpeed = AKVariSpeed(player)
46
+
47
+ variSpeed.rate = 0.5
48
+
49
+ AudioKit.output = variSpeed
50
+
51
+
52
+
53
+ try? AudioKit.start()
54
+
55
+ }
56
+
57
+ }
10
58
 
11
59
  ```
12
60
 
13
- と、
14
61
 
15
- スピードを帰れるよう
16
62
 
17
- ```swift
63
+ を行うとエラーは起きずにアプリが固まってしまいます…。
18
64
 
19
- variSpeed = AKVariSpeed(player)
20
-
21
- variSpeed.rate = 0.5
22
-
23
- AudioKit.output = variSpeed
65
+ 2曲同時に流すだけ(半分にする方のAudioKit.output = variSpeedをコメントアウトする)と普通に動きます。
24
-
25
- ```
26
-
27
- を指定したのですが、outputが2つある状態で
28
-
29
- ```swift
30
-
31
- try? AudioKit.start()
32
-
33
- ```
34
-
35
- を行うとエラーは起きずにアプリが固まってしまいます…
36
66
 
37
67
  どうすれば2つのputputを一気に処理できるのでしょうか…?