列表,因为它更容易编写:
•音乐开始播放
•跳至下一曲目
•Flite说歌曲标题
•fliteDidFinishSpeaking
无法解雇 - 为什么?
•点击播放以开始播放音乐 - [musicPlayer play];
处于失败方法的结尾
•跳到下一首曲目(或等待歌曲完成)
•Flite说出最后一首歌的标题 - 没有采用say:
的新论据
•音乐重启 - 从现在开始,Flite没有问题
•跳至下一曲目
•Flite通常说话
•音乐重新开始
这仅在应用首次启动时发生,因此初始化时出现问题,无论是在我的代码中还是在OpenEars / Flite本身。
答案 0 :(得分: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];
}
如果有人找到了,那么正确的解决方案将是理想的。