私が取り組んでいるcocos2dゲームでAVAudioRecorderを使用しているAVAudioSessionに問題があります。AVAudioSessionはiPhoneオーディオを自動的に再ルーティングしますか?
単純なAVAudioRecorderの例を使ってマイク入力をキャプチャしようとしていますが、ユーザーがマイクで音を出すタイミングを検出します(サウンド自体は問題ではありません、私は/ dev/nullに記録しています)。ここで
はマイクのための私のセットアップコードです:NSURL *newURL = [[NSURL alloc] initFileURLWithPath:@"/dev/null"];
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: nil];
NSDictionary *recordSettings =
[[NSDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithFloat: 22050.0], AVSampleRateKey,
[NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey,
[NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
[NSNumber numberWithInt: AVAudioQualityLow],
AVEncoderAudioQualityKey,
nil];
micInput = [[AVAudioRecorder alloc] initWithURL:newURL settings:recordSettings error:nil];
[newURL release];
[recordSettings release];
[micInput setMeteringEnabled:YES];
上記のコードでは、iPhone上で、シーンは本当にで遊んオーディオ(効果音、背景音楽など)のすべてで始まりますそれは外部スピーカーの代わりに電話スピーカーでのみ再生されるためです。 iPadまたはiPod Touchでこれをテストすると、バックグラウンドオーディオが期待通りに外部スピーカーを通って再生されます。これは、ゲームのこの特定の部分でiPhone版でプレイすると、ゲームの音量が大幅に低下するため、問題です。
AVAudioSessionセットアップ行をコメントアウトすると、サウンドは外部スピーカーで再生されますが、もちろんマイク入力ができなくなります。この問題の回避策または解決策はありますか?私はAVAudioRecorderで録音できる必要がありますが、iPhoneの外部スピーカーからのオーディオ出力はまだあります。
ありがとうございます!
これは私の問題を解決しました。あなたの助けをありがとう! – chmod