def download_and_play(url, file_name, download_path): # Lanza thread logger.info("Active threads " + str(threading.active_count())) logger.info("" + repr(threading.enumerate())) logger.info("Starting download thread...") download_thread = DownloadThread(url, file_name, download_path) download_thread.start() logger.info("Download thread started") logger.info("Active threads " + str(threading.active_count())) logger.info("" + repr(threading.enumerate())) # Espera logger.info("Waiting...") while True: cancelled = False dialog = xbmcgui.DialogProgress() dialog.create(config.get_localized_string(60200), config.get_localized_string(60312)) dialog.update(0) while not cancelled and download_thread.isAlive(): dialog.update(download_thread.get_progress(), config.get_localized_string(60313), "Velocidad: " + str(int(download_thread.get_speed() / 1024)) + " KB/s " + str( download_thread.get_actual_size()) + "MB de " + str( download_thread.get_total_size()) + "MB", "Tiempo restante: " + str(downloadtools.sec_to_hms(download_thread.get_remaining_time()))) xbmc.sleep(1000) if dialog.iscanceled(): cancelled = True break dialog.close() logger.info("End of waiting") # Lanza el reproductor player = CustomPlayer() player.set_download_thread(download_thread) player.PlayStream(download_thread.get_file_name()) # Fin de reproducción logger.info("Fin de reproducción") if player.is_stopped(): logger.info("Terminado por el usuario") break else: if not download_thread.isAlive(): logger.info("La descarga ha terminado") break else: logger.info("Continua la descarga") # Cuando el reproductor acaba, si continúa descargando lo para ahora logger.info("Download thread alive=" + str(download_thread.isAlive())) if download_thread.isAlive(): logger.info("Killing download thread") download_thread.force_stop()
def download_and_play(url, file_name, download_path): # Start thread logger.info("Active threads " + str(threading.active_count())) logger.info("" + repr(threading.enumerate())) logger.info("Starting download thread...") download_thread = DownloadThread(url, file_name, download_path) download_thread.start() logger.info("Download thread started") logger.info("Active threads " + str(threading.active_count())) logger.info("" + repr(threading.enumerate())) # Wait logger.info("Waiting...") while True: cancelled = False dialog = xbmcgui.DialogProgress() dialog.create(config.get_localized_string(60200), config.get_localized_string(60312)) dialog.update(0) while not cancelled and download_thread.is_alive(): dialog.update(download_thread.get_progress(), config.get_localized_string(60313) + '\n' + config.get_localized_string(60314) + str(int(old_div(download_thread.get_speed(), 1024))) + " KB/s " + str( download_thread.get_actual_size()) + config.get_localized_string(60316) + str( download_thread.get_total_size()) + "MB", config.get_localized_string(60202) % (str(downloadtools.sec_to_hms(download_thread.get_remaining_time())))) xbmc.sleep(1000) if dialog.iscanceled(): cancelled = True break dialog.close() logger.info("End of waiting") # Launch the player player = CustomPlayer() player.set_download_thread(download_thread) player.PlayStream(download_thread.get_file_name()) # End of playback logger.info("End of playback") if player.is_stopped(): logger.info("Terminated by user") break else: if not download_thread.is_alive(): logger.info("Download has finished") break else: logger.info("Continua la descarga") # When the player finishes, if you continue downloading it for now logger.info("Download thread alive=" + str(download_thread.is_alive())) if download_thread.is_alive(): logger.info("Killing download thread") download_thread.force_stop()
def download_and_play(url,file_name,download_path): # Lanza thread logger.info("[download_and_play.py] Active threads "+str(threading.active_count())) logger.info("[download_and_play.py] "+repr(threading.enumerate())) logger.info("[download_and_play.py] Starting download thread...") download_thread = DownloadThread(url,file_name,download_path) download_thread.start() logger.info("[download_and_play.py] Download thread started") logger.info("[download_and_play.py] Active threads "+str(threading.active_count())) logger.info("[download_and_play.py] "+repr(threading.enumerate())) # Espera logger.info("[download_and_play.py] Waiting...") while True: cancelled=False dialog = xbmcgui.DialogProgress() dialog.create('Descargando...', 'Cierra esta ventana para empezar la reproducción') dialog.update(0) while not cancelled and download_thread.is_alive(): dialog.update( download_thread.get_progress() , "Cancela esta ventana para empezar la reproducción", "Velocidad: "+str(int(download_thread.get_speed()/1024))+" KB/s "+str(download_thread.get_actual_size())+"MB de "+str(download_thread.get_total_size())+"MB" , "Tiempo restante: "+str( downloadtools.sec_to_hms(download_thread.get_remaining_time())) ) xbmc.sleep(1000) if dialog.iscanceled(): cancelled=True break dialog.close() logger.info("[download_and_play.py] End of waiting") # Lanza el reproductor player = CustomPlayer() player.set_download_thread(download_thread) player.PlayStream( download_thread.get_file_name() ) # Fin de reproducción logger.info("[download_and_play.py] Fin de reproducción") if player.is_stopped(): logger.info("[download_and_play.py] Terminado por el usuario") break else: if not download_thread.is_alive(): logger.info("[download_and_play.py] La descarga ha terminado") break else: logger.info("[download_and_play.py] Continua la descarga") # Cuando el reproductor acaba, si continúa descargando lo para ahora logger.info("[download_and_play.py] Download thread alive="+str(download_thread.is_alive())) if download_thread.is_alive(): logger.info("[download_and_play.py] Killing download thread") download_thread.force_stop()
def download_and_play(url, file_name, download_path): # Lanza thread logger.info("[download_and_play.py] Active threads " + str(threading.active_count())) logger.info("[download_and_play.py] " + repr(threading.enumerate())) logger.info("[download_and_play.py] Starting download thread...") download_thread = DownloadThread(url, file_name, download_path) download_thread.start() logger.info("[download_and_play.py] Download thread started") logger.info("[download_and_play.py] Active threads " + str(threading.active_count())) logger.info("[download_and_play.py] " + repr(threading.enumerate())) # Espera logger.info("[download_and_play.py] Waiting...") while True: cancelled = False dialog = xbmcgui.DialogProgress() dialog.create('Caricamento in corso..,', 'Chiudi la finestra per avviare la riproduzione') dialog.update(0) while not cancelled and download_thread.is_alive(): dialog.update( download_thread.get_progress(), "Annulla questa finestra per avviare la riproduzione", "Velocità: " + str(int(download_thread.get_speed() / 1024)) + " KB/s " + str(download_thread.get_actual_size()) + "MB de " + str(download_thread.get_total_size()) + "MB", "Tempo rimanente: " + str( downloadtools.sec_to_hms( download_thread.get_remaining_time()))) xbmc.sleep(1000) if dialog.iscanceled(): cancelled = True break dialog.close() logger.info("[download_and_play.py] End of waiting") # Lanza el reproductor player = CustomPlayer() player.set_download_thread(download_thread) player.PlayStream(download_thread.get_file_name()) # Fin de reproducción logger.info("[download_and_play.py] Fin de reproducción") if player.is_stopped(): logger.info("[download_and_play.py] Terminado por el usuario") break else: if not download_thread.is_alive(): logger.info("[download_and_play.py] La descarga ha terminado") break else: logger.info("[download_and_play.py] Continua la descarga") # Cuando el reproductor acaba, si continúa descargando lo para ahora logger.info("[download_and_play.py] Download thread alive=" + str(download_thread.is_alive())) if download_thread.is_alive(): logger.info("[download_and_play.py] Killing download thread") download_thread.force_stop()
def download_and_play(url, file_name, download_path, show_dialog=True): # Lanza thread logger.info("[download_and_play.py] Active threads " + str(threading.active_count())) logger.info("[download_and_play.py] " + repr(threading.enumerate())) logger.info("[download_and_play.py] Starting download thread...") download_thread = DownloadThread(url, file_name, download_path) download_thread.start() logger.info("[download_and_play.py] Download thread started") logger.info("[download_and_play.py] Active threads " + str(threading.active_count())) logger.info("[download_and_play.py] " + repr(threading.enumerate())) # Espera logger.info("[download_and_play.py] Waiting...") while True: cancelled = False if show_dialog: dialog = xbmcgui.DialogProgress() dialog.create('Descargando...', 'Cierra esta ventana para empezar la reproducción') dialog.update(0) while not cancelled and download_thread.is_alive(): dialog.update( download_thread.get_progress(), "Cancela esta ventana para empezar la reproducción", "Velocidad: " + str(int(download_thread.get_speed() / 1024)) + " KB/s " + str(download_thread.get_actual_size()) + "MB de " + str(download_thread.get_total_size()) + "MB", "Tiempo restante: " + str( downloadtools.sec_to_hms( download_thread.get_remaining_time()))) xbmc.sleep(1000) if dialog.iscanceled(): cancelled = True break dialog.close() else: xbmc.executebuiltin(( u'XBMC.Notification("Iniciando", "Iniciando descarga en segundo plano...", 300)' )) xbmc.sleep(3000) logger.info("[download_and_play.py] End of waiting") # Lanza el reproductor player = CustomPlayer() player.set_download_thread(download_thread) player.PlayStream(download_thread.get_file_name()) # Fin de reproducción logger.info("[download_and_play.py] Fin de reproducción") if player.is_stopped(): logger.info("[download_and_play.py] Terminado por el usuario") break else: if not download_thread.is_alive(): logger.info("[download_and_play.py] La descarga ha terminado") break else: logger.info("[download_and_play.py] Continua la descarga") # Cuando el reproductor acaba, si continúa descargando lo para ahora logger.info("[download_and_play.py] Download thread alive=" + str(download_thread.is_alive())) if download_thread.is_alive(): logger.info("[download_and_play.py] Killing download thread") download_thread.force_stop()