我正在尝试使用iPhone麦克风录制声音并在扬声器上播放(如果插入耳机则播放耳机) .
目前我使用此设置和音频播放工作......虽然它不会在手机的底部(响亮)扬声器上播放,而是在前置摄像头附近的耳机上播放:
NSString *tempDir = NSTemporaryDirectory();
NSString *soundFilePath = [tempDir stringByAppendingPathComponent:@"sound.caf"];
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
NSDictionary *recordSettings = @{AVEncoderAudioQualityKey: [NSNumber numberWithInt:AVAudioQualityMin],
AVEncoderBitRateKey: @16,
AVNumberOfChannelsKey: @2,
AVSampleRateKey: @44100.0};
NSError *error = nil;
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
_audioRecorder = [[AVAudioRecorder alloc] initWithURL:soundFileURL settings:recordSettings error:&error];
我尝试过这样的事情:(更改了文件扩展名并将AVFormatIDKey添加到设置中)
NSString *soundFilePath = [tempDir stringByAppendingPathComponent:@"sound.aac"];
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
// Set settings for audio recording
NSDictionary *recordSettings = @{AVFormatIDKey: [NSNumber numberWithInt:kAudioFormatMPEG4AAC],
AVEncoderAudioQualityKey: [NSNumber numberWithInt:AVAudioQualityMin],
AVEncoderBitRateKey: @16,
AVNumberOfChannelsKey: @2,
AVSampleRateKey: @44100.0};
但后来我得到:
Error: The operation couldn’t be completed. (OSStatus error 334207.)
如果我将文件扩展名更改为.caf,它不会报告错误,但它不会播放任何内容 .
这是播放代码:
NSError *error;
_audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:_audioRecorder.url error:&error];
_audioPlayer.delegate = self;
if (error) NSLog(@"Error: %@", [error localizedDescription]);
else [_audioPlayer play];
简而言之,如何使用iPhone扬声器(或插入耳机时)录制和播放aac文件?
------------------编辑-----------------
使用此设置将其保存到.aac文件:
NSDictionary *recordSettings = @{AVFormatIDKey: @(kAudioFormatMPEG4AAC),
AVEncoderAudioQualityKey: @(AVAudioQualityMin),
AVSampleRateKey: @16000.0,
AVNumberOfChannelsKey: @1};
现在我只需要在扬声器上播放,这样用户就可以实际听到录制的内容
如果觉得《java读取aac文件_以AAC格式录制和播放声音》对你有帮助,请点赞、收藏,并留下你的观点哦!