質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
iPad

iPadは、Appleがデザインしたタブレット型コンピュータです。iPadアプリケーションは通常Xcode IDEのObjective-Cで書かれますが、iPadアプリケーションを組むためのほかのツールを使うことも可能です。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

5789閲覧

AVAudioEngineでフリーズする

7-staring

総合スコア10

iPad

iPadは、Appleがデザインしたタブレット型コンピュータです。iPadアプリケーションは通常Xcode IDEのObjective-Cで書かれますが、iPadアプリケーションを組むためのほかのツールを使うことも可能です。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1グッド

0クリップ

投稿2017/01/27 03:53

iPadで音声に効果をつけられるエフェクターアプリを製作したいと思っています。色々なサイトを参考にして以下のようなコードになりました。プログラムの内容は、ボタンを押すとマイクから入力された音が、エフェクト処理されスピーカーから出るという内容です。

Swift

1import UIKit 2import AVFoundation 3class ViewController: UIViewController { 4 5 let engine = AVAudioEngine() 6 let format = AVAudioFormat() 7 @IBAction func PushEffect(sender: AnyObject){ 8 9 do{ 10 let delay = AVAudioUnitDelay() 11 12 engine.attach(delay) 13 14 let inputNode = engine.inputNode! 15 let outputNode = engine.outputNode 16 17 engine.connect(inputNode, to: delay, format: format) 18 engine.connect(delay, to: outputNode, format: format) 19 20 delay.delayTime = 1.5 21 delay.feedback = 20 22 do{ 23 try engine.start() 24 }catch let error{ 25 print("ERROR",error) 26 } 27 } 28 } 29 override func viewDidLoad() { 30 super.viewDidLoad() 31 // Do any additional setup after loading the view, typically from a nib. 32 } 33 34 override func didReceiveMemoryWarning() { 35 super.didReceiveMemoryWarning() 36 // Dispose of any resources that can be recreated. 37 } 38 39 40} 41

ですが実行すると以下のエラーが出てフリーズしてしまいます。

Swift

12017-01-27 12:34:25.731812 Effecter2[5859:1470997] [Accessibility] ****************** Loading GAX Client Bundle **************** 22017-01-27 12:34:27.144009 Effecter2[5859:1470997] [central] 54: ERROR: [0x1aba66c40] >avae> AVAudioEngineGraph.mm:1664: _Connect: required condition is false: IsFormatSampleRateAndChannelCountValid(format) 32017-01-27 12:34:27.144400 Effecter2[5859:1470997] *** Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: IsFormatSampleRateAndChannelCountValid(format)' 4*** First throw call stack: 5(0x186a0d1b8 0x18544455c 0x186a0d08c 0x19fec7300 0x19fedbfec 0x19fedf708 0x19ff4725c 0x19ff47318 0x1000ff018 0x1000ff40c 0x18c8f0d30 0x18c8f0cb0 0x18c8db128 0x18c8f059c 0x18c8f00c4 0x18c8eb328 0x18c8bbda0 0x18d0a575c 0x18d09f130 0x1869bab5c 0x1869ba4a4 0x1869b80a4 0x1868e62b8 0x18839a198 0x18c9267fc 0x18c921534 0x100101614 0x1858c95b8) 6libc++abi.dylib: terminating with uncaught exception of type NSException

iPad iOS10.2 (14C92)
Xcode Version 8.2.1 (8C1002)

Omogo👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こう書き直してみてください。

swift

1engine.connect(inputNode, to: delay, format:delay.inputFormat(forBus: 0)) 2engine.connect(delay, to: outputNode, format:nil)

ちなみに

swift

1let format = AVAudioFormat() 2print("\(format)")

の結果がこれ

<AVAudioFormat 0x174099500: 0 ch, 0 Hz>

だったので、エラー内容にも納得です。

投稿2017/01/27 12:21

pebble8888

総合スコア390

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

7-staring

2017/01/27 14:45

回答ありがとうございます、上記の通りに訂正したら実行することができました。ですが記述いただいた部分の意味が分からないのですがこれは公式リファレンス等で確認できるのでしょうか?CoreAudioについて学習したいのですがついていけず困っています。
pebble8888

2017/01/28 08:43

0Hzとなっているところはサンプリング周波数なので44100Hzなどの値が入っていないと動くはずがないです。 学習したいなら、例えばこのあたりの本でしょうか。Objective-Cですが。 最近のものでいい本があるかどうかは分かりません。 Learning Core Audio: A Hands-On Guide to Audio Programming for Mac and iOS 作者: Chris Adamson,Kevin Avila
7-staring

2017/01/28 11:23

ありがとうございます、助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問