Я создал приложение, используя пример SpeakHere. Программа принимает вокальный ввод, выполняет некоторые эффекты на нем, а затем записывает его в файл для воспроизведения.Текущая нить предотвращает полное воспроизведение звука на iPhone
Я создал поток, который запускает код обработки звука, показывая небольшую анимацию. Все работает отлично, за исключением случаев, когда поток завершен, и я нажимаю воспроизведение, он воспроизводится всего несколько секунд, а затем он останавливается. Странная вещь в этом заключается в том, что никаких других изменений или ошибок не возникает. Я загрузил аудио с устройства на свою машину, и все это есть, так что это не так, как если бы запись была короче.
[NSThread detachNewThreadSelector:@selector (run_thread)
toTarget:self
withObject:nil];
И тогда метод:
-(void)run_thread
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
printf("Running Thread...\n");
recordFilePath = runAllAudioRoutines();
NSString *print_recordFilePath= (NSString *)recordFilePath;
NSLog(@"RECORD FILE PATH ----> %@", print_recordFilePath);
player->CreateQueueForFile(recordFilePath);
bars_mixing_rap = false;
// Set the button's state back to "record"
btn_record.title = @"Record";
btn_record.enabled = YES;
btn_play.enabled = YES;
LOADING = FALSE;
[pool drain];
}
Любые идеи?
Вы пытались использовать грандиозную центральную диспетчеризацию, а не использовать NSThreads? –
Интересно, но, к сожалению, это доступно только для iOS4. Мне нужно что-то, что может работать на других iOS. –