Neler Yeni

python uygulama kapatma

Katılım
23 Mart 2020
Mesajlar
337
Dahası  
Reaksiyon skoru
112
İsim
Emirhan Erdem
arkadaşlar merhaba ses alışverişi yapabileceğimiz bir program yapıyorum arayüzüde tkinter kullandım şimdilik.
Bağlantıyı kes butonuna tıkladığımda programın tamamen kapanması lazım ancak kapanmıyor.
Python:
self.disconnect_button = tk.Button(
self.root, text="Bağlantıyı kes",cursor="hand2", command=self.disconnect)
self.disconnect_button.pack() 


def disconnect(self):
        
        self.client_socket = None
        
        self.root.destroy()
        self.pencere.destroy()
        self.pencere.quit()
        self.root.quit()
        sys.exit()
        
        
        
def get_sound_fonc(self):
        p = pyaudio.PyAudio()
        stream = p.open(
            format=pyaudio.paInt16,
            channels=self.CHANNELS,
            rate=self.RATE,
            output=True
        )
        
        if self.connect:
                while self.is_running_recv:
                    
                        try:
                            data = self.client_socket.recv(self.CHUNK)
                            if not data:
                                break
                            if self.event.is_set() and self.output_stream is not None:  # Hoparlör bağlantısı kontrolü eklendi
                                self.play_server_output(data)
                            """ if self.event.is_set() and self.output_stream is not None:  # Hoparlör bağlantısı kontrolü eklendi
                                self.play_server_output(data)
                                    except Exception as e:
                                print("Beklenmeyen bir hata oluştu:", e)
                                print("Ses aktarımı durduruldu.")
                                return"""
                            
                        
                        except Exception as e:
                            if self.client_socket is not None:
                                print("Beklenmeyen bir hata oluştu:", e)
                                print("Yeni bir bağlantı bekleniyor...")
                                self.client_socket.close()
                                self.client_socket, address = self.server_socket.accept()
                                print(f"* {address} adresinden yeni bir bağlantı alındı.")

                                data = self.client_socket.recv(self.CHUNK)
                                if not data:
                                    break
                                if self.event.is_set() and self.output_stream is not None:  # Hoparlör bağlantısı kontrolü eklendi
                                    self.play_server_output(data)
                                else:
                                    print("hoparlör bağlantısı koptu.")
                                    return
                if self.connect==False:
                        print("İnternet bağlantısı kopmuş. Bağlantının tekrar sağlanması bekleniyor...")
                        while self.connect() == False:
                            pass
                        print("İnternet bağlantısı tekrar sağlandı. Ses aktarımı devam ediyor.")

                        self.client_socket.close()
                        self.client_socket, address = self.server_socket.accept()
                        print(f"* {address} adresinden yeni bir bağlantı alındı.")

                        data = self.client_socket.recv(self.CHUNK)
                        
                        if self.event.is_set():
                            self.play_server_output(data)
        
        stream.stop_stream()
        stream.close()
        self.client_socket.close()
        p.terminate()

Kodun bir kısmı bu şekilde, ancak butona tıkladığımda program tamamen kapanmak yerine işaretli yer kalıyor (ne denir tam bilemedim) yardım eder misiniz kafam çok dağıldı.
1689086344700.png
 
Top Bottom