Я не уверен, что вы можете «посчитать» слова из аудио, я действительно не балуюсь аудио на iphone достаточно, чтобы дать какой-либо четкий совет с этой точки зрения, но если бы это был я, я бы сделал это.
Это может показаться немного неуклюжим, но кажется, что оно будет делать то, что вы хотите.
У меня был бы CCScheduler, который запускается каждые 0,5 секунды, возможно.
У меня также был бы массив для моего аудиофайла, возможно, сохраненный в plist (поэтому несколько аудиофайлов могут содержать «массивы» в словаре.
Массив будет содержать целые числа, которые будут представлять время, которое имеетПо истечении времени, когда звук начал воспроизводиться, objectAtIndex: 0 будет наименьшим числом, и каждое из них будет увеличиваться.
Вы добавляете по одному для каждого слова в предложении или аудио.
Когда вы начинаете воспроизведение вашего аудиофайла, удерживайте переменную [NSDate date] (запись точного времени, когда звук начал воспроизводиться (достаточно близко)).
В вашем планировщике отметьте [array objectAtIndex: 0] противколичество времени, прошедшее с начала воспроизведения звука, если объект массива меньше, запустите метод, который рисует ваше «выделение» за этой частью текста, затем [removeObjectAtIndex: 0].
Если objectAtIndex:0 больше, чем истекло время, просто вернитесь;
Вполне возможно, что вы будете следить за позициями слов, возможно, рисуя каждое из них отдельно как отдельный CCSprite, и метод выделения будет по вашему собственному предпочтению, ноэто подход, который я мог бы предпринять.