Мне нужно иметь возможность переключать значение логического значения через определенное количество времени, пока остальная часть моего кода продолжает работать как обычно. То, что происходит в основной части кода, зависит от значения Bool.Изменение переменной после определенного количества времени python
Вот моя попытка с предложением goodguy, но я все еще не могу заставить его работать. «play» переключается на True, когда я вызываю класс, но не переключается обратно на False через 2 секунды, поэтому звук воспроизводится только один раз. Что я делаю не так?
class TimedValue:
def __init__(self):
self._started_at = datetime.datetime.utcnow()
def __call__(self):
time_passed = datetime.datetime.utcnow() - self._started_at
if time_passed.total_seconds() > 2:
return False
return True
playing = False
while True:
trigger = randint(0,10) # random trigger that triggers sound
if trigger == 0 and playing == False:
#play a tone for 2 seconds whilst the random triggers continue running
#after the tone is over and another trigger happens, the tone should play again
thread.start_new_thread(play_tone, (200, 0.5, 2, fs, stream,))
value = TimedValue()
playing = value()
time.sleep(0.1)
Вы можете включить код для Вашего лучшая попытка? Гораздо легче понять проблему, если есть начальная основа. – roganjosh
Это нормально? У меня действительно нет лучшей попытки, ничего не работает. – ElanaLS