- Lecteur multimédia open source polyvalent en Swift, bien intégré avec Force Touch / Touch Bar / les contrôles multimédias du système sur Mac
- Basé sur le moteur mpv, il peut lire la plupart des médias et prend en charge des fonctions comme PIP, le mode sombre et les sous-titres en ligne
- À partir de la version 1.4.0, ajout d’un système de plugins basé sur JavaScript, permettant une personnalisation libre allant du contrôle de lecture à une UI sur mesure avec quelques lignes de code
- Fonctions accessibles depuis les plugins
- Core : contrôle de lecture, cadre de fenêtre, vérification et réglage de l’état des pistes de sous-titres
- Playlist : contrôle de la liste de lecture et ajout de menus personnalisés
- Subtitle : enregistrement d’un téléchargeur de sous-titres personnalisé, prise en charge de l’intégration UI
- Menu : ajout d’éléments avec raccourcis clavier dans le menu du plugin
- Overlay : affichage de contenu personnalisé basé sur une webview au-dessus de la vidéo
- Sidebar View : ajout d’onglets basés sur une webview dans la barre latérale
- Standalone Window : fourniture d’une fenêtre indépendante pour des UI complexes
- Global Controller : création et contrôle de plusieurs instances du lecteur
- File : accès au système de fichiers utilisateur, traitement de fichiers et données temporaires du sandbox
- Preferences : enregistrement des réglages et ajout d’une page dédiée dans le panneau des préférences
- Utils : affichage de boîtes de dialogue système, exécution de binaires externes
- Console : sortie de logs de débogage, consultables dans la visionneuse de logs d’IINA
- MPV : utilisation des propriétés et hooks de l’API mpv pour un contrôle avancé de la lecture
- Event : enregistrement/suppression de listeners d’événements IINA et mpv
- HTTP : exécution de requêtes HTTP et XMLRPC
- Exemples 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(); });
Aucun commentaire pour le moment.