File size: 1,211 Bytes
4a6400b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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()