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

質問編集履歴

1

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

2019/12/14 02:40

投稿

Shouka
Shouka

スコア34

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