iPhone - openAL перестает играть, если я записываю с AVAudioRecorder - PullRequest
0 голосов
/ 09 апреля 2010

это вопрос, связанный с iPhone: Я использую openAL для воспроизведения звука (мне нужно управлять усилением, высотой звука и т. Д.). Я хочу записать то, что я играю, и я использую AVAudioRecorder, но когда я «prepareToRecord» openAL останавливает воспроизведение аудио. В чем проблема? Вот запись IBAction, которую я использую:

- (IBAction) record: (id) sender
{
NSError *error;
    NSMutableDictionary *settings = [NSMutableDictionary dictionary];
    [settings setValue: [NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];
    [settings setValue: [NSNumber numberWithFloat:8000.0] forKey:AVSampleRateKey];
    [settings setValue: [NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey]; 
    [settings setValue: [NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
    [settings setValue: [NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
    [settings setValue: [NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];
    NSURL *url = [NSURL fileURLWithPath:FILEPATH];
    self.recorder = [[AVAudioRecorder alloc] initWithURL:url settings:settings error:&error];
    self.recorder.delegate = self;
    self.recorder.meteringEnabled = YES;
    [self.recorder prepareToRecord];
    [self.recorder record];
}

Спасибо

EDIT:

Я тоже пробовал с записью AudioQueue. На этот раз звуки прекращаются после этого кода:

status = AudioQueueEnqueueBuffer(recordState.queue, recordState.buffers[i], 0, NULL);

Так что можно записывать, когда iPhone играет с openAL ???

Еще раз спасибо

1 Ответ

0 голосов
/ 09 апреля 2010

FILEPATH совпадает с путем, в котором воспроизводится другой файл ...? и если record и prepareToRecord вызваны из одного места ... на самом деле вам не нужно звонить prepareToRecord ... record выполнит работу ... см

http://developer.apple.com/iphone/library/documentation/AVFoundation/Reference/AVAudioRecorder_ClassReference/Reference/Reference.html#//apple_ref/occ/instm/AVAudioRecorder/prepareToRecord

...