Воспроизведение звуков через разные промежутки времени

Я хочу использовать предложение, синтезированное речью, в демонстрации приложения. После нажатия кнопки запускается таймер, и, например, через 12 секунд произносится первое предложение, затем через 1,30 минуты и так далее.

Подход, о котором я думал, - это NS Timer. Но, насколько я вижу, он воспроизводится только через определенное время. Так нужен ли мне для любого промежутка времени новый таймер? или я могу отслеживать оставшееся время и вызывать вызов метода, когда наступает определенное время?

Спасибо


person Sebastian Scharf    schedule 20.09.2014    source источник


Ответы (1)


Я бы сделал это, используя словарь с 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)]);
    }
}
person rdelmar    schedule 20.09.2014