gpt4 book ai didi

iphone - 在播放声音的同时录制音频

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:42:40 24 4
gpt4 key购买 nike

是否可以使用 AVAudioRecorder 录制音频并同时使用 AVAudioPlayer 播放另一个音频文件?

最佳答案

iOS 6 是可能的。我自己在 iOS 5.x 中遇到问题。没有关于 5.x 之前版本的信息。

为此,必须将 AudioSession 类别设置为 AVAudioSessionCategoryPlayAndRecord

NSError *error = nil;
NSLog(@"Setting category for AudioSession to AVAudioSessionCategoryPlayAndRecord");
BOOL success = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
if (!success) {
NSLog(@"Error setting category for AudioSession:\n\terror: %@", error.localizedDescription);
}

AVAudioRecorder 的设置如下:

NSString *fileToRecordPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"record.m4a"];
NSURL *fileToRecordURL = [NSURL fileURLWithPath:fileToRecordPath];
NSDictionary *settings = @{AVFormatIDKey: [NSNumber numberWithInt:kAudioFormatMPEG4AAC],
AVSampleRateKey: [NSNumber numberWithFloat:44100.0],
AVNumberOfChannelsKey: [NSNumber numberWithInt:1]};
NSError *error = nil;

AVAudioRecorder *audioRecorder = [[AVAudioRecorder alloc] initWithURL:self.fileURL settings:settings error:&error];
if (!audioRecorder) {
NSLog(@"Error initializing AVAudioRecorder:\n\terror: %@", error.localizedDescription);
}
audioRecorder.delegate = self;
[audioRecorder prepareToRecord];

在 AVAudioPlayer 中播放另一个音频文件(相同格式,m4a)时,在 iOS 6 中一切正常。在 iOS 5 中,行为很奇怪。播放音频或音频播放暂停时,无法开始录音。不过,当首先开始录制时,可以同时播放(其他文件的)。

经过相当多的搜索后,我找不到正确设置它的方法。虽然我不敢相信,但这是 iOS 中的错误,而是缺少设置。

所以这适用于 iOS 6,但非常感谢对 iOS 5 问题的帮助;o)

关于iphone - 在播放声音的同时录制音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15930841/

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