2016-10-07 14 views
3

私は最近、実際にAVAudioEngineのセッションであるWWDC2014を見ましたが、InputNodeにNodeTapをインストールしてAVAudioBuffersを使って説明した概念について質問があります。 Callback notification to the App outside the AudioEngineAVAudioEngineでAuAudioBufferのコールバックを実装する

スピーカーは、コールバックを使用してAppモジュールに通知することが可能であることに言及しました。 私の質問は、バッファがいっぱいになるまでコールバックを待つのではなく、特定の時間が経過した後にアプリケーションモジュールに通知することが可能です。したがって、AVAudioEngineが開始されると、100ミリ秒ごとの録音のたびにこのバッファのコールバックを設定/登録することが可能になります。そのため、Appモジュールはこのバッファを100msごとに処理するように通知されます。 誰もこれを試したことがあります。これを実装する方法に関するあなたの提案を教えてください。あなたがこのロジックのためのいくつかのリソースを指摘すれば素晴らしいことでしょう。 ご協力いただきありがとうございます。悲しいことに -Suresh

答えて

0

、あなたが100ミリ秒のバッファサイズを選択できなければならないinstallTapOnBusの有望bufferSize引数:

input.installTapOnBus(bus, bufferSize: 512, format: input.inputFormatForBus(bus)) { (buffer, time) -> Void in 
    print("duration: \(buffer.frameLength, buffer.format.sampleRate) -> \((Double)(buffer.frameLength)/buffer.format.sampleRate)s") 
} 

が無視されて自由である、

の要求されたサイズ入ってくるバッファ。実装は別のサイズを選択することがあります。

と次のとおりです。

duration: (16537, 44100.0) -> 0.374988662131519s 

だからあなたの入力バッファサイズ/所要時間をより細かく制御するために、私はあなたがCoreAudio年代リモートIOオーディオユニットを使用することをお勧め。

関連する問題