• Swift में बना ओपन source बहुउद्देश्यीय मीडिया प्लेयर, जो Mac के Force Touch/Touch Bar/system media controls आदि के साथ अच्छी तरह इंटीग्रेट होता है
  • mpv engine पर आधारित, इसलिए अधिकांश मीडिया चला सकता है, और PIP, dark mode, online subtitles जैसी सुविधाओं को सपोर्ट करता है
  • 1.4.0 से JavaScript-आधारित plugin system जोड़ा गया है, जिससे कुछ lines of code के साथ playback control से लेकर custom UI तक को आसानी से customize किया जा सकता है
  • plugin में उपलब्ध फीचर
    • Core: playback control, window frame, subtitle track की स्थिति जांचना और सेट करना
    • Playlist: playlist control और custom menu जोड़ना
    • Subtitle: custom subtitle downloader register करना, UI integration support
    • Menu: plugin menu में shortcut keys सहित items जोड़ना
    • Overlay: webview-आधारित custom content को वीडियो के ऊपर दिखाना
    • Sidebar View: sidebar में webview-आधारित tabs जोड़ना
    • Standalone Window: complex UI के लिए standalone window देना
    • Global Controller: कई player instances बनाना और नियंत्रित करना
    • File: user file system access, sandbox temporary files और data handling
    • Preferences: settings save करना और preferences panel में dedicated page जोड़ना
    • Utils: system dialogs दिखाना, external executables चलाना
    • Console: debugging logs output करना, IINA log viewer में देखना
    • MPV: mpv API properties और hooks का उपयोग, advanced playback control संभव
    • Event: IINA और mpv event listeners register/unregister करना
    • HTTP: HTTP और XMLRPC requests चलाना
  • plugin उदाहरण
    // 비디오 상단에 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();  
    });  
    

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.