7 ポイント 投稿者 xguru 2025-09-21 | まだコメントはありません。 | WhatsAppで共有
  • MacのForce Touch/Touch Bar/システムメディアコントロールなどと高い親和性を持つ、Swift製のオープンソース多機能メディアプレーヤー
  • mpvエンジンベースでほとんどのメディアを再生でき、PIP、ダークモード、オンライン字幕などの機能をサポート
  • 1.4.0からJavaScriptベースのプラグインシステムを追加し、数行のコードだけで再生制御からカスタムUIまで自由にカスタマイズ可能
  • プラグインからアクセス可能な機能
    • Core: 再生制御、ウィンドウフレーム、字幕トラックの状態確認と設定
    • Playlist: 再生リストの制御とカスタムメニューの追加
    • Subtitle: カスタム字幕ダウンローダーの登録、UI統合をサポート
    • Menu: プラグインメニューにショートカット付き項目を追加
    • Overlay: WebViewベースのカスタムコンテンツを動画上に表示
    • Sidebar View: サイドバーにWebViewベースのタブを追加
    • Standalone Window: 複雑なUI向けに独立ウィンドウを提供
    • Global Controller: 複数のプレーヤーインスタンスを生成・制御
    • File: ユーザーファイルシステムへのアクセス、サンドボックスの一時ファイル・データ処理
    • Preferences: 設定の保存と環境設定パネルへの専用ページ追加
    • Utils: システムダイアログの表示、外部実行ファイルの起動
    • Console: デバッグログの出力、IINAログビューアで確認可能
    • MPV: mpv APIのプロパティやフックを活用し、高度な再生制御が可能
    • Event: IINAおよびmpvイベントリスナーの登録/解除
    • HTTP: HTTPおよびXMLRPCリクエストの実行
  • プラグイン例
    // 비디오 상단에 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();  
    });  
    

まだコメントはありません。

まだコメントはありません。