LAV Audio Decoder каждый раз

Добрый день!

Передо мной стоит задача (сам себе поставил) написать программу, которая при изменении изображения в определенной области экрана, выдавала бы мне звуковой сигнал.

На данный момент, программа более менее работает. Применяю TKinter в том числе, для взаимодействия с программой без терминала. Пытаюсь решить две проблемы:

  1. Нужно поддерживать цикл while и root.mainloop() одновременно;
  2. Звуковой декодер LAV Audio Decoder запускается каждый раз, когда цикл while воспроизводит звук. Воспроизвожу через библиотеку playsound.

Запуски декодера каждый раз из цикла while

(p.s. пусть не активированная ОС никого не смущает:) )

Мой код целиком:

from re import I
from time import sleep
import tkinter
from tkinter.scrolledtext import ScrolledText
from cv2 import repeat
import numpy as np
import pyautogui
import imutils
import cv2
import os
from tkinter import BOTH, END, HORIZONTAL, Tk, scrolledtext, ttk
from matplotlib import image
from playsound import playsound
from threading import Thread
import time
import secrets
import string


root = Tk()
root["bg"] = ""
root.title("Мое первое окно")
root.geometry("400x225")
root.resizable (width=False, height=False)


#-----Кнопка "Закрыть"
def buttonQuit():
    root.quit()   
button = ttk.Button(root, text="Закрыть", command=buttonQuit)
button.pack()

#-----Кнопка "Старт"
def buttonCallback():
    console.configure(state='normal')  # enable insert
    console.insert(END, "True" + '\n')
    console.yview(END)  # autoscroll
    console.configure(state='disabled')  # disable editing
    return True   
button = ttk.Button(root, text="Старт", command=buttonCallback)
button.pack()

#-----Кнопка "Стоп"
def buttonCallback():
    console.configure(state='normal')  # enable insert
    console.insert(END, "False" + '\n')
    console.yview(END)  # autoscroll
    console.configure(state='disabled')  # disable editing
    return False   
button = ttk.Button(root, text="Стоп", command=buttonCallback)
button.pack()

#Поиск на экране по картинке
#template = pyautogui.locateOnScreen('F:\coding\EVE Online Hacking\icon.png') 
#print(template)



while buttonCallback:
    screen1 = pyautogui.screenshot("screen1.png", region=(68,277, 23, 20))
    a = os.path.getsize("screen1.png")
    b = os.path.getsize("screen2.png")
    if a != b:
        playsound("icq.mp3", False)
    screen2 = pyautogui.screenshot("screen2.png", region=(68,277, 23, 20))
    time.sleep(0.5)
        





console = scrolledtext.ScrolledText(root, state='disable')
console.pack()

root.mainloop()

Помогите разобраться с двумя проблемами, пожалуйста.

P.s. кнопки и консоль нужны для проверок, в программе на данный момент не учавствуют


Ответы (0 шт):