Browse Source

Fixed bug when starting up with Airplay selected

Raspberry Pi 5 years ago
parent
commit
178a7756bd
1 changed files with 8 additions and 6 deletions
  1. 8 6
      webradio.py

+ 8 - 6
webradio.py

@@ -88,6 +88,7 @@ class WebRadio:
         # Start een thread om de staat van het display te controleren
         self.thread = Thread(target=self.check_display)
         self.thread.start()
+        self.mplayer = None
         with open(WebRadio.zenderfile, "r") as file:
             self.zender = int(file.read().strip())
             self.gekozen_zender = self.zender
@@ -95,16 +96,13 @@ class WebRadio:
         print(ZENDERLIJST[self.zender][0])
     
         self.display.center_text(ZENDERLIJST[self.zender][0])
-        self.mplayer = subprocess.Popen(["mplayer", *ZENDERLIJST[self.zender][1:]], stderr=subprocess.DEVNULL, stdout=subprocess.DEVNULL)
+        self.switch_zender()
 
     def button_pressed(self):
         self.gekozen_zender = self.zender
 
         if self.zender == 0:
             self.afsluiten()
-        elif self.zender == 1:
-            self.mplayer.terminate()
-            self.mplayer = subprocess.Popen(["/home/pi/projects/airplay-audio-project/shairport/shairport", "-a", "RaspberryPi"], stderr=subprocess.DEVNULL, stdout=subprocess.DEVNULL)
         else:
             self.switch_zender()
         with open(self.zenderfile, "w") as file:
@@ -122,8 +120,12 @@ class WebRadio:
         
     
     def switch_zender(self):
-        self.mplayer.terminate()
-        self.mplayer = subprocess.Popen(["mplayer", *ZENDERLIJST[self.zender][1:]], stderr=subprocess.DEVNULL, stdout=subprocess.DEVNULL)
+        if self.mplayer:
+            self.mplayer.terminate()
+        if self.zender == 1:
+            self.mplayer = subprocess.Popen(["/home/pi/projects/airplay-audio-project/shairport/shairport", "-a", "RaspberryPi"], stderr=subprocess.DEVNULL, stdout=subprocess.DEVNULL)
+        else:
+            self.mplayer = subprocess.Popen(["mplayer", *ZENDERLIJST[self.zender][1:]], stderr=subprocess.DEVNULL, stdout=subprocess.DEVNULL)
     
     def dial_turned(self):
         if self.rechts.is_pressed: