7 pontos por xguru 2025-09-21 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Player de mídia multifuncional open source em Swift que se integra muito bem com Force Touch/Touch Bar/controles de mídia do sistema do Mac
  • Baseado no motor mpv, consegue reproduzir a maioria das mídias e oferece recursos como PIP, modo escuro e legendas online
  • A partir da versão 1.4.0, adiciona um sistema de plugins baseado em JavaScript, permitindo personalização livre, do controle de reprodução até UI customizada, com apenas algumas linhas de código
  • Recursos acessíveis a partir dos plugins
    • Core: controle de reprodução, frame da janela, verificação e configuração do estado das faixas de legenda
    • Playlist: controle da lista de reprodução e adição de menus personalizados
    • Subtitle: registro de baixadores de legenda personalizados e suporte à integração com a UI
    • Menu: adição de itens com atalhos ao menu do plugin
    • Overlay: exibição de conteúdo personalizado baseado em webview sobre o vídeo
    • Sidebar View: adição de abas baseadas em webview à barra lateral
    • Standalone Window: fornece janelas independentes para UIs complexas
    • Global Controller: criação e controle de várias instâncias do player
    • File: acesso ao sistema de arquivos do usuário, tratamento de arquivos e dados temporários do sandbox
    • Preferences: salvamento de configurações e adição de páginas dedicadas ao painel de preferências
    • Utils: exibição de diálogos do sistema e execução de binários externos
    • Console: saída de logs de depuração, com visualização no visualizador de logs do IINA
    • MPV: uso de propriedades e hooks da API do mpv para controle avançado de reprodução
    • Event: registro/remoção de listeners de eventos do IINA e do mpv
    • HTTP: execução de requisições HTTP e XMLRPC
  • Exemplos de plugins
    // 비디오 상단에 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();  
    })  
    
    // 비디오가 멈추면 윈도우를 최소화 하고, 원복되면 다시 시작   
    const { core, event } = iina;  
    event.on("mpv.pause.changed", () => {  
      core.window.miniaturized = core.status.paused;  
    });  
    event.on("iina.window-deminiaturized", () => {  
      core.resume();  
    });  
    

Ainda não há comentários.

Ainda não há comentários.