簡體   English   中英

運行線程阻止iPhone上的音頻完全播放

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM