У меня есть очень специфическая проблема, и я еще не нашел решение. У меня есть кнопка IBAction для нажатия кнопки. То, что я хочу, чтобы это произошло, когда нажата эта кнопка:После нажатия кнопки, как можно воспроизводить звук в ТОЧКУ в то же время, что и активность экрана
играть звуковой файл (это около 5 секунд долго звук)
флэш слова на экране (это также около 5 секунд длиной)
Я хочу, чтобы это произошло одновременно, так что общее время составляет около 5 секунд (слова мигают во время воспроизведения звука).
Что мне в итоге, так это то, что слова сначала мигают, а затем звучит звук. Я никогда не смогу заставить их идти одновременно. Интересно, что я никогда не смогу перенести звук первым, даже когда он будет установлен в самом начале действия.
Я пробовал NSThread звук, exec, CATransaction flush, но ничто не может заставить их одновременно.
любые идеи, кстати, я полный начинающий программист, так что извините, если не описано надлежащим образом.
-(IBAction) playButtonClick:(id)sender {
int i;
[_audioPlayer play];
for (i=0; i<10; i++){
[self.model getNextWord];
[self displayWord];
[CATransaction flush];
usleep(550000); // word on screen for 0.55 seconds
}
}
[CATransaction flush] требуется еще все, что я бы увидела, было бы самым последним словом.
Звук занимает некоторое время, чтобы загрузить, убедитесь, что ваш звук находится в памяти, прежде чем кнопка станет активной. Использование легкого проигрывателя звуковых эффектов, например [JSQSystemSoundPlayer] (https://github.com/jessesquires/JSQSystemSoundPlayer), может пригодиться. – ishaq
Вы можете предоставить функцию IBAction? –
Вы предоставите код, в котором вы вызываете обе функции? – CaptainBli