public void change(String url) {
   log.info("Change to " + url);
   SwingUtilities.invokeLater(
       () -> {
         if (url == null) {
           currentUrl = null;
           stop();
           return;
         }
         ready = false;
         PlayerInImage player2 = new PlayerInImage(width, height, null, url);
         Timer timer =
             new Timer(
                 sleepTime,
                 (a) -> {
                   JComponent component = player.getComponent();
                   player.setComponent(null);
                   player2.setComponent(component);
                   inChange = true;
                   player.stop();
                   player = player2;
                   image = player2.getImage();
                   ready = true;
                   currentUrl = url;
                 });
         timer.setRepeats(false);
         timer.start();
       });
 }
 public void switchManually() {
   checkEDT();
   if (manualTempURL == null) {
     stop();
     return;
   }
   JComponent component = player.getComponent();
   player.setComponent(null);
   manualTempPlayer.setComponent(component);
   player.stop();
   player = manualTempPlayer;
   image = player.getImage();
   currentUrl = manualTempURL;
 }