I want the program to play sound until the user stops the program himself.
My code:
import pathlib,time
from pydub import AudioSegment
from pydub.playback import play
from gtts import gTTS
english=["school", "book", "theater"]
select = str(input("press ENTER to Start Stop=>'s':"))
elements=('', 'p')
while True:
if select not in elements:
print("Please Correct Selection--")
continue
elif select in elements:
for pick in english:
index = english.index(pick)
eng = pick
print(index, "-> ", eng)
text_eng = eng
my_eng_obj = gTTS(text=eng, lang="en", slow=False)
text_eng = text_eng.replace(" ", "_")
try:
file_en = pathlib.Path(text_eng + ".mp3")
if file_en.exists():
song_s = AudioSegment.from_mp3(file_en)
play(song_s)
pass
else:
my_eng_obj.save(text_eng + ".mp3")
song_s = AudioSegment.from_mp3(file_en)
play(song_s)
except:
pass
time.sleep(0.2)
The sound section is working properly. I need the infinite loop section. How can I interrupt with an input?
That's one of the solutions
import time
from pynput import keyboard
print("Press Enter ==> Start\n"
"Press p ==> Exit")
check = ''
def Start(key):
if key == keyboard.Key.enter:
print("Started")
return False
def Stop(key):
global check
if key==keyboard.KeyCode(char='p'):
check = 'stop'
return False
with keyboard.Listener(on_release=Start) as listener:
listener.join()
listener = keyboard.Listener(on_release=Stop)
listener.start()
while True:
print("Do Something:Test")
time.sleep(1)
if check == 'stop':
print("\nLoop Stopped...!")
break