2012-05-13 17 views
3

私は普遍的なアプリケーションでオーディオを録音して再生しようとしています。 AVAudioSessionの設定は次のとおりです。iPodでオーディオを録音して再生する

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error: nil]; 
UInt32 category = kAudioSessionCategory_PlayAndRecord; 
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category); 

これは、内蔵マイクを備えたデバイスで問題なく動作します。しかし、第3世代のiPodでは、ランダムな望ましくない動作が発生しています。場合によってはすべて正常に動作し、時には内蔵マイク付きイヤフォンが差し込まれている場合にのみ発生します。この場合、イヤホンなしでアプリ内の音声を聞くことはできません。

答えて

0

iPod Touchの第3世代にはマイクが内蔵されていません。 1つの方法は、ヘッドフォンをマイクで接続する方法です。 マイク内蔵iPod Touchの唯一の世代は4番目です。

inputRecordingが利用可能かどうかをチェックすることができます:

UInt32 propertySize, micConnected; 
AudioSessionGetProperty(kAudioSessionProperty_AudioInputAvailable, &propertySize, &micConnected); 
+0

おかげデイブが、これは私の問題を解決していませんでした。問題は、iPodの第3世代で録音を許可するために、オーディオカテゴリをkAudioSessionCategory_PlayAndRecordに設定すると、外部スピーカーのサウンドが失われてしまうことです。デバイスのモデルとマイクのプラグを差し込んだり、プラグを抜いてオーディオセッションのカテゴリをリセットしようとしましたが、スピーカーの音を回復できません。どんな手掛かり? – LoDani

+0

@LoDani iPod Touch 3rd genでは、kAudioSessionProperty_AudioInputAvailableを取得したときの結果はどうなりますか?ヘッドセットを取り外すと問題が発生しますか? – Dabrut

+0

ヘッドセットが接続されていてもtrue(micConnected!= 0)を返します。しかし、[[AVAudioSession sharedInstance] inputIsAvailable]を求める正しい結果が得られます。そして、はい、録音後にヘッドセットのプラグを抜くと、私の問題が発生します。私はAudioCategoryとAudioRouteプロパティを変更して、結果を出さずにプラグを検出した。 – LoDani

関連する問題