0
私は、Pythonでサブプロセスとして分類されているMPlayerを通じて一連のオーディオファイルを再生しようとしています。クラスで実行中のサブプロセスの停止
次に、.stop()コマンドが呼び出されたとき。私はサブプロセスを.....うまく実行しないようにします。
私が発生し続けることが重要なことは、メインスレッドです。私はPythonを完全に終了させたくありません。
以下は、これまでに試したコードです。
class Alarm:
urllib.request.urlretrieve(Settings.news_url, 'news.mp3')
tts1 = gTTS(text='Good morning' + Settings.name + 'It is ' + str(date.today()), lang='en')
tts2 = gTTS(text='Here is the latest news from the BBC world service', lang='en')
tts3 = gTTS(text='The weather for today is ' + Settings.weather_rss.entries[0]['title'].split(' ', 1)[1], lang='en')
tts4 = gTTS(text='That is all for now. Have a great day!', lang='en')
tts1.save(Settings.greeting)
tts2.save(Settings.news_intro)
tts3.save(Settings.weather_forecast)
tts4.save(Settings.outtro)
def play(self):
alarmpi = subprocess.call(['mplayer', Settings.greeting, Settings.news_intro, 'news.mp3', Settings.weather_forecast, Settings.outtro]);
def stop(self):
alarmpi.kill()
alarm = Alarm()
on = Thread(target=alarm.play)
stop = Thread(target=alarm.stop)
on.start()
time.sleep(5)
stop.start()
ただし、これを実行すると、alarmpiが定義されていないというエラーが表示されます。
この問題を解決する方法はありますか?
ありがとうございます。
ありがとうございました! ここで属性エラーが発生しました。 AttributeError: 'Alarm'オブジェクトに 'alarmpi'属性がありません。 ' – Keva161
'play'メソッドを変更してもよろしいですか?それは私のためにここで働くからです。 –
ああ、はい。ちょうどアプリケーションを再入力し、期待どおりに動作します:)ありがとう! – Keva161