- 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.