首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenEars -第一次触发Flite时未调用fliteDidFinishSpeaking

OpenEars -第一次触发Flite时未调用fliteDidFinishSpeaking
EN

Stack Overflow用户
提问于 2012-05-02 00:48:24
回答 1查看 298关注 0票数 0

一个列表,因为它更容易写:

·音乐开始播放

·跳到下一首曲目

·Flite说出歌名

·fliteDidFinishSpeaking不能启动--为什么?

·点击Play开始播放音乐-- [musicPlayer play];位于失败方法的末尾

·跳到下一首曲目(或等待歌曲结束)

·Flite说出了最后一首歌的名字--而不是接受say:的新论点

·音乐重启--从这一点开始,Flite就不会有麻烦了

·跳到下一首曲目

·Flite正常说话

·音乐重启

这只会在应用程序首次启动时发生,所以初始化有问题,无论是在我的代码中还是在OpenEars/Flite本身中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-05 23:15:11

蛮力似乎工作得很好:

代码语言:javascript
复制
- (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];
}

如果有人找到了一个合适的解决方案,那将是最理想的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10401128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档