2012-05-01 25 views
0

名單,因爲它更容易寫:OpenEars - fliteDidFinishSpeaking不叫首次弗萊特被激發

•音樂開始播放
•跳到下一首曲目
•弗萊特說歌名
fliteDidFinishSpeaking沒有按不開火 - 爲什麼?
•點擊播放開始音樂 - [musicPlayer play];是失敗的方法
•跳到下一首曲目(或只是等待歌曲結束)
•弗萊特說最後一首歌曲的標題末尾 - 不採取新的論據say:
•音樂重新啓動 - 從這個角度上,弗萊特沒有障礙
•跳到下一首曲目
•弗萊特通常講
•音樂重啓

這隻發生當應用程序是第一個lau nched,所以在初始化時出錯了,無論是在我的代碼還是在OpenEars/Flite本身。

回答

0

蠻力似乎是相當不錯的了:

- (void)fliteWillStartSpeaking { 
    [self resetFliteController]; 
    [fliteController say:@"some words" withVoice:curVoice]; 

    fliteDidFinish = NO; 
    fliteFinishTimer = [NSTimer scheduledTimerWithTimeInterval:kFliteTimerCycle 
         target:self selector:@selector(forceFliteDidFinish) 
         userInfo:nil repeats:NO]; 
} 

- (void)forceFliteDidFinish { 
    if (!fliteDidFinish) { 
     [self fliteDidFinishSpeaking]; 
    } 

    [fliteFinishTimer invalidate]; 
} 

一個適當的解決將是理想的,如果有人發現了一個。