7 puntos por xguru 2025-09-21 | Aún no hay comentarios. | Compartir por WhatsApp
  • Reproductor multimedia multifunción de código abierto en Swift para Mac, con muy buena integración con Force Touch/Touch Bar/controles multimedia del sistema
  • Basado en el motor mpv, puede reproducir la mayoría de los formatos multimedia y admite funciones como PIP, modo oscuro y subtítulos en línea
  • Desde la versión 1.4.0, añade un sistema de plugins basado en JavaScript que permite una amplia personalización, desde el control de reproducción hasta interfaces personalizadas, con apenas unas cuantas líneas de código
  • Funciones accesibles desde los plugins
    • Core: control de reproducción, marco de ventana, consulta y configuración del estado de las pistas de subtítulos
    • Playlist: control de listas de reproducción y adición de menús personalizados
    • Subtitle: registro de descargadores de subtítulos personalizados y soporte para integración con la UI
    • Menu: agregar elementos al menú del plugin, incluyendo atajos de teclado
    • Overlay: mostrar contenido personalizado basado en WebView sobre el video
    • Sidebar View: agregar pestañas basadas en WebView a la barra lateral
    • Standalone Window: proporcionar ventanas independientes para interfaces complejas
    • Global Controller: crear y controlar múltiples instancias del reproductor
    • File: acceso al sistema de archivos del usuario y manejo de archivos/datos temporales del sandbox
    • Preferences: guardar ajustes y añadir una página dedicada en el panel de preferencias
    • Utils: mostrar cuadros de diálogo del sistema y ejecutar binarios externos
    • Console: imprimir logs de depuración y revisarlos en el visor de logs de IINA
    • MPV: aprovechar propiedades y hooks de la API de mpv para un control de reproducción avanzado
    • Event: registrar/quitar listeners de eventos de IINA y mpv
    • HTTP: ejecutar solicitudes HTTP y XMLRPC
  • Ejemplos de plugins
    // Mostrar el título en la parte superior del video con tamaño de fuente 48  
    const { core, event, overlay } = iina;  
    event.on("iina.file-loaded", () => {  
      overlay.simpleMode();  
      overlay.setContent(`<p>${core.status.title}</p>`);  
      overlay.setStyle(`p { font-size: 48px; }`);  
      overlay.show();  
    })  
    
    // Si el video se pausa, minimizar la ventana; al restaurarla, reanudar la reproducción  
    const { core, event } = iina;  
    event.on("mpv.pause.changed", () => {  
      core.window.miniaturized = core.status.paused;  
    });  
    event.on("iina.window-deminiaturized", () => {  
      core.resume();  
    });  
    

Aún no hay comentarios.

Aún no hay comentarios.