7 poin oleh xguru 2025-09-21 | Belum ada komentar. | Bagikan ke WhatsApp
  • Pemutar media multifungsi open source berbasis Swift yang terintegrasi dengan baik dengan Force Touch/Touch Bar/kontrol media sistem di Mac
  • Berbasis mesin mpv, dapat memutar sebagian besar media dan mendukung fitur seperti PIP, mode gelap, dan subtitle online
  • Mulai versi 1.4.0, ditambahkan sistem plugin berbasis JavaScript, sehingga dari beberapa baris kode saja pengguna dapat dengan bebas menyesuaikan mulai dari kontrol pemutaran hingga UI kustom
  • Fitur yang dapat diakses dari plugin
    • Core: kontrol pemutaran, bingkai jendela, memeriksa dan mengatur status track subtitle
    • Playlist: kontrol daftar putar dan penambahan menu kustom
    • Subtitle: mendaftarkan pengunduh subtitle kustom, mendukung integrasi UI
    • Menu: menambahkan item termasuk pintasan keyboard ke menu plugin
    • Overlay: menampilkan konten kustom berbasis webview di atas video
    • Sidebar View: menambahkan tab berbasis webview ke sidebar
    • Standalone Window: menyediakan jendela terpisah untuk UI yang kompleks
    • Global Controller: membuat dan mengontrol beberapa instance player
    • File: akses ke sistem file pengguna, penanganan file dan data sementara sandbox
    • Preferences: menyimpan pengaturan dan menambahkan halaman khusus ke panel preferensi
    • Utils: menampilkan dialog sistem, menjalankan executable eksternal
    • Console: menampilkan log debugging, dapat dilihat di penampil log IINA
    • MPV: memanfaatkan properti dan hook API mpv untuk kontrol pemutaran tingkat lanjut
    • Event: mendaftarkan/menghapus listener event IINA dan mpv
    • HTTP: menjalankan permintaan HTTP dan XMLRPC
  • Contoh 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();  
    });  
    

Belum ada komentar.

Belum ada komentar.