import gradio as gr import time from PIL import Image import io # Variable globale pour stocker l'image reçue de la 3DS derniere_image = None def rafraichir_ecran(): global derniere_image # Cette fonction tourne en boucle sur ton téléphone pour mettre à jour l'affichage while True: time.sleep(0.05) # ~20 FPS yield dernie_image def recevoir_image_java(image_pil): global derniere_image derniere_image = image_pil return "Image reçue avec succès par Hugging Face" # Création de l'interface Gradio with gr.Blocks() as demo: gr.Markdown("# 3DS Stream - Écran de ton Téléphone") # Zone d'affichage pour ton téléphone affichage_video = gr.Image(label="Console 3DS", streaming=True) # Relance automatiquement la fonction pour rafraîchir l'image toutes les 50ms demo.load(rafraichir_ecran, outputs=affichage_video, every=0.05) # API cachée que ton programme Java va appeler input_image = gr.Image(type="pil", visible=False) bouton_api = gr.Button("Envoyer", visible=False) bouton_api.click(recevoir_image_java, inputs=input_image) # Active la file d'attente pour gérer le flux continu demo.queue().launch()