基本的なAVAudioRecorder/AVAudioPlayerサウンドレコーダーとプレーヤーを作成しテストしました。最終的には、私はこのデバイスでも、シミュレータでも動作させました。私のプレイヤー/レコーダーコードは、単一のUIViewサブクラスにあります。残念ながら、クラスを私のメインプロジェクトにコピーすると、それはもはや機能しません(デバイス上で - シミュレータは問題ありません)。 prepareToRecord
は正常に動作していますが、record
は正しく動作していません。AVAudioRecorder prepareToRecordは動作しますが、記録に失敗します
audioRecorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:&error];
if ([audioRecorder prepareToRecord]){
audioRecorder.meteringEnabled = YES;
if(![audioRecorder record])NSLog(@"recording failed!");
}else {
int errorCode = CFSwapInt32HostToBig ([error code]);
NSLog(@"preparedToRecord=NO Error: %@ [%4.4s])" , [error localizedDescription], (char*)&errorCode);
...
「記録に失敗しました」と表示されます。誰もが、なぜこれが起きているのか考えていますか?
私はこの問題を発見しました。私の主なプロジェクトのどこかには、独自の[AVAudioSession sharedInstance]を持つCocos2d "SimpleAudioEngine"を使用しています。私の推測では、これは何とか私のオーディオセッションの設定に干渉するというものです。たとえば、次のようになります。[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];とにかく、SimpleAudioEngineを削除すると、レコーダー/プレーヤーが機能します。もちろん、私に別の問題が残る... – iPadDeveloper2011