首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS - AVAudioRecorder -使用ADPCM或IMA录制

iOS - AVAudioRecorder -使用ADPCM或IMA录制
EN

Stack Overflow用户
提问于 2013-09-17 04:17:26
回答 1查看 409关注 0票数 0

通过使用这些录制设置,我可以让AVAudioRecorder正常工作:

代码语言:javascript
复制
    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;
}

一旦我改变了这个:

代码语言:javascript
复制
[NSNumber numberWithInt:kAudioFormatLinearPCM],AVFormatIDKey,

要这样做:

代码语言:javascript
复制
[NSNumber numberWithInt:kAudioFormatAppleIMA4],AVFormatIDKey,

我得到以下错误:

代码语言:javascript
复制
recorder: NSOSStatusErrorDomain 1718449215 {
}

也就是说,不支持音频格式。kAudioFormatUnsupportedDataFormatError

我需要做什么才能让ADPCM或IMA与AVAudioRecorder协同工作?

EN

回答 1

Stack Overflow用户

发布于 2015-01-12 05:46:05

1)请确保您正确设置了录制(或)播放(或)两者(即VOIP)的会话,如下所示:

代码语言:javascript
复制
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error:nil];

2)使用以下代码,因为这对我很有效(我压缩到低质量,因为我有一个消息应用程序):

代码语言:javascript
复制
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
                               ];

致敬Heider Sati

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18836548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档