0

これらの録音設定を使用して、AVAudioRecorder を機能させることができます。

    recordSetting = [NSDictionary dictionaryWithObjectsAndKeys:
//                     [NSNumber numberWithFloat:2048.0f],AVSampleRateKey,
//                     [NSNumber numberWithInt:1],AVNumberOfChannelsKey,
//                     [NSNumber numberWithInt:8],AVLinearPCMBitDepthKey,
                     [NSNumber numberWithInt:kAudioFormatLinearPCM],AVFormatIDKey,
//                     [NSNumber numberWithBool:NO], AVLinearPCMIsFloatKey,
//                     [NSNumber numberWithBool:0], AVLinearPCMIsBigEndianKey,
//                     [NSNumber numberWithBool:NO], AVLinearPCMIsNonInterleaved,
//                     [NSNumber numberWithInt:256], AVEncoderBitRateKey,
                     [NSData data], AVChannelLayoutKey, nil];


recorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSetting error:&err];


if(!recorder){
    NSLog(@"recorder: %@ %d %@", [err domain], [err code], [[err userInfo] description]);
    UIAlertView *alert =
    [[UIAlertView alloc] initWithTitle: @"Warning"
                               message: [err localizedDescription]
                              delegate: nil
                     cancelButtonTitle:@"OK"
                     otherButtonTitles:nil];
    [alert show];

    return;
}

これを変更するとすぐに:

[NSNumber numberWithInt:kAudioFormatLinearPCM],AVFormatIDKey,

これに:

[NSNumber numberWithInt:kAudioFormatAppleIMA4],AVFormatIDKey,

次のエラーが表示されます。

recorder: NSOSStatusErrorDomain 1718449215 {
}

つまり、オーディオ形式はサポートされていません。kAudioFormatUnsupportedDataFormatError

ADPCM または IMA を AVAudioRecorder と連携させるにはどうすればよいですか?

4

1 に答える 1

0

1) 次のように、録音 (または) 再生 (または) 両方 (つまり VOIP) のセッションを正しく設定していることを確認してください。

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error:nil];

2) 次のコードを使用します。これは私にとっては問題なく動作するためです (メッセージング アプリを使用しているため、低品質に圧縮しています)。

NSDictionary *AudioSettings = [[NSDictionary alloc] initWithObjectsAndKeys:
                               [NSNumber numberWithInt:kAudioFormatAppleIMA4], AVFormatIDKey
                               , [NSNumber numberWithFloat:11025.00], AVSampleRateKey
                               , [NSNumber numberWithInt:1], AVNumberOfChannelsKey
                               , [NSNumber numberWithInt:11025], AVEncoderBitRateKey
                               , [NSNumber numberWithInt:8], AVLinearPCMBitDepthKey
                               , [NSNumber numberWithInt:AVAudioQualityMin], AVEncoderAudioQualityKey
                               , [NSNumber numberWithInt:1], AVNumberOfChannelsKey
                               , nil
                               ];

よろしく ハイダー・サティ

于 2015-01-11T21:46:05.043 に答える