2009-07-04 8 views
3

私は録音と再生の両方を同時に行う2つの異なるiphoneアプリで作業しています。マルチトラックのミキシングを考えてみましょう。あるサウンドを再生して保存し、次にそのサウンドを聴いて、次のサウンドを別のファイルに録音します。このための私の仕組みは、録音用と再生用の2つの異なるオーディオキューを起動することでした。 iPhone OS 3.0でのオーディオ録音エラーkAudioQueueErr_CannotStart

この

はそれ以来、しかし、次のようになり... OS 3.0のリリースまで、[OK]を働いていた:私は、最初の記録キューを起動した場合、それはおそらく罰金を開始しますが、

AudioQueueStartへの呼び出し再生キューの場合、kAudioQueueErr_CannotStartを返します。

再生キューを最初に開始すると、それも正常に開始されますが、レコードキューのAudioQueueStartを呼び出すと、同じエラーkAudioQueueErr_CannotStartが返されます。

誰もがこのエラーをデバッグする運がありますか?多分2つの列がお互いの記憶や何かを踏んでいるようなのでしょうか?正式な説明は次のとおりです。「オーディオキューに問題が発生し、開始できません。ない超便利...

ジェレミー

+0

オーディオセッションの管理が問題であることが判明しました。ドキュメントは、あなたのアプリが他のアプリとどのようにやりとりするかを管理するためにオーディオセッションを処理することが本当に必要であることを暗示しているので、ちょっと怖かったです。確かにそうではありません。注意してください。 –

答えて

6

これはちょっとした答えですが、オーディオセッションAPIを使用してオーディオカテゴリを「再生して録画する」ように設定しましたか?あなたのアプリのためにマイクを予約するためにこれを行う必要があります。 3.0のオーディオセッションにはいくつかの変更がありました(obj-cのコンビニエンスクラスAVAudioSessionを作成し、いくつかの新しいカテゴリを定義しています)ので、そこでの変更があなたを混乱させる可能性があります。

ところで、あなたがcoreaudio-apiのリスト(lists.apple.com)にいないのなら、あなたはそうでなければなりません。コミュニティとアップルのエンジニアが本当に役に立ちます。

+0

具体的には: UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord; AudioSessionSetProperty( kAudioSessionProperty_AudioCategory、 はsizeof(sessionCategory)、 &sessionCategory)。 私のために働いた。 –

0

たぶん私が間違っている、しかし、私は一つだけ(アクティブ?)オーディオキューが同時に存在することができます。気持ちを持っています

出力オーディオキューをオーディオユニット(リモートIO)に切り替える必要がある場合があります。
AudioQueuesは再生のために色あせないので、オーディオユニットは傷つけません。

この男はそれをやり遂げ、これについてはblog postで話します。

関連する問題