[英]Running thread prevents full playback of audio on iPhone
我已經使用SpeakHere示例創建了一個應用。 該程序將人聲輸入,對其進行一些效果,然后將其寫入文件以進行播放。
我創建了一個線程,該線程在顯示一些動畫的同時運行音頻處理代碼。 一切正常,除非線程完成並且我點擊了播放,它只播放了幾秒鍾,然后停止了。 奇怪的是,沒有其他變化或錯誤產生。 我已經將設備上的音頻下載到了我的機器上,並且所有的都在那里,所以錄音的時間似乎並不短。
[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];
}
有任何想法嗎?
代碼線程安全嗎? 尚不清楚runAllAudioRoutines()的功能或btn_record和btn_play是什么, 但是例如, 如果 btn_record是NSButton的實例,則無法從后台線程設置其標題或啟用狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.