在不同的时间间隔后播放声音

时间:2014-09-20 20:32:58

标签: ios nstimer

我想在应用程序演示中使用语音合成句子。按下按钮后,计时器运行,例如12秒后,第一个句子被说出,然后是1.30分钟,依此类推。

我想到的方法是NS计时器。但据我所知,它只能在规定的时间后播放。那么我需要在任何时间段都有一个新计时器吗?或者我可以跟踪剩余的时间并在达到特定时间时调用方法调用吗?

由于

1 个答案:

答案 0 :(得分:0)

我会使用带有NSNumbers的字典作为键(表示秒),以及您想要作为值说出的句子。使用一个简单的计时器每秒触发一次,更新一个int,当转换为NSNumber时,将根据字典键检查。我只是登录这个例子,但这应该让你开始,

- (void)viewDidLoad {
    [super viewDidLoad];
    self.dict = @{@3:@"First", @5:@"second", @11:@"Third", @35:@"Fourth"};
    [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(doStuff:) userInfo:nil repeats:YES];
}

-(void)doStuff:(NSTimer *) aTimer {
    static int i = 0;
    i++;
    if ([self.dict.allKeys containsObject:@(i)]) {
        NSLog(@"%@", self.dict[@(i)]);
    }
}