gpt4 book ai didi

ios - 如何以 .amr 格式在 objective c 中为 iphone 应用程序录制音频?

转载 作者:行者123 更新时间:2023-11-29 02:16:44 25 4
gpt4 key购买 nike

我使用以下代码来录制音频。它非常适合 .caf 格式。

dirPaths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
NSString *soundFilePath = [docsDir
stringByAppendingPathComponent:@"sound.caf"];

NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];

NSDictionary *recordSettings = [NSDictionary
dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:AVAudioQualityMin],
AVEncoderAudioQualityKey,
[NSNumber numberWithInt:16],
AVEncoderBitRateKey,
[NSNumber numberWithInt: 2],
AVNumberOfChannelsKey,
[NSNumber numberWithFloat:44100.0],
AVSampleRateKey,
nil];

NSError *error = nil;

audioRecorder = [[AVAudioRecorder alloc]
initWithURL:soundFileURL
settings:recordSettings
error:&error];

但是对于 .amr,如果我按照下面的方式将扩展名更改为 .amr,则无法录制音频。

NSString *soundFilePath = [docsDir
stringByAppendingPathComponent:@"sound.amr"];

谁能指导我如何以 .amr 格式录制和保存音频?

最佳答案

试试下面的代码,可能对你有用..

AppDelegate *del = (AppDelegate*)[[UIApplication sharedApplication]delegate];
//set path & name for Recording Audio
NSString *dataPath=[del.path_Folder_Document copy];
NSString *filePath = [NSString stringWithFormat:@"%@/Images_Audio/%@.3gp", dataPath,[ARR_Img_File_Name_Moment objectAtIndex:pos]];
NSLog(@"Audio File Path =%@",filePath);

NSURL *tmpFileUrl = [NSURL fileURLWithPath:filePath];
//set Record Setting
NSDictionary *recordSettings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,
[NSNumber numberWithFloat:8000.0], AVSampleRateKey,
[NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
nil];

NSError *error = nil;
//Prepare Recorder to Start Recording Audio
recorder = [[AVAudioRecorder alloc] initWithURL:tmpFileUrl settings:recordSettings error:&error];
recorder.delegate = self;
[recorder prepareToRecord];

AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryRecord error:nil];
[session setActive:YES error:nil];
//Start Recording Audio ..

if ([[NSFileManager defaultManager] isWritableFileAtPath:filePath]) {
NSLog(@"Writable Pathforimage_Audio 1st>> %@", filePath);

}else
{
NSLog(@"Not Writable");
}

[recorder record];

NSLog(@"its recording audio...");

关于ios - 如何以 .amr 格式在 objective c 中为 iphone 应用程序录制音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28667431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com