特定の時間が経過した後にブール値を切り替える必要がありますが、残りのコードは通常どおり実行されます。コードの主要部分で起こることはBoolの値に依存します。特定の時間が経過した後に変数を変更するPython
私はgoodguyの提案で私の試みをしていますが、まだ動作させることができません。クラスを呼び出すと「再生」がTrueに切り替わりますが、2秒後にFalseに戻っても音は1回しか再生されません。私は間違って何をしていますか?
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)
の他の部分で呼び出し可能なものとして使用
value()
は、あなたのためのコードを含めることができます別の可能な方法は、例えば、それが測定のために作成された時間を記憶して呼び出し可能なクラスのようなものを定義することですこれまでの最善の試み?開始の基礎がある場合は、問題を理解するのがずっと簡単です。 – roganjoshそれは大丈夫ですか?私は本当に最高の試みをしていない、何も働いていない。 – ElanaLS