Swift: запуск звуковых эффектов во время таймера - PullRequest
0 голосов
/ 06 июля 2018

Я создал супер простое приложение для обратного отсчета. Вы нажимаете кнопку, и отсчет запускается. Расчет конечного результата выглядит следующим образом:

  • 10,0
  • 9,999
  • 9,998
  • ...

И каждое целое число представляет секунду, так что, как вы можете себе представить, оно работает быстро.

Пока выполняется этот цикл, у меня есть код для воспроизведения звука, если он находит текущие значения равными 3,0 или 2,0 или 1,0 или 0,0.

Все срабатывает, и звучит звук, однако он чертовски крут. Около 80% времени срабатывает отлично. В остальное время он либо задерживается на долю секунды, либо пропускает его полностью. Звуковые эффекты имеют решающее значение для приложения.

Я использовал подготовку, чтобы играть правильно, и это ничего не улучшило. Моя текущая реализация использует SKTAudio , что, как мне кажется, немного излишне для моих нужд.

Любой совет?

1 Ответ

0 голосов
/ 06 июля 2018

Обратите внимание на один момент - если вы используете класс Double для сравнения двух значений, вы можете обнаружить, что значение 2.0 не является реальным 2.0, а, например, 2.0000000001. Таким образом, 2 и 2.0000001 - это разные значения, и ваш звук не будет воспроизводиться

Использование может попробовать что-то. как

let checkValue: Double = 2 // your comparison value
let timerValue = 2.00000001 //for example
if (timerValue - Double(Int(timerValue))) == 0 && checkValue == timerValue {
    print("Cool")
} else {
    print("Not cool")
}

или почти такой же

let checkValue: Double = 2 // your comparison value
let timerValue = 2.00000001 //for example

if timerValue == Double(Int(timerValue)) && timerValue == checkValue {
    print("Cool")
} else {
    print("Not cool")
}
...