#mpv #libmpv #bindings #plugin #create #client #api-client

mpv-client-dyn

为 libmpv 客户端 API 提供绑定,允许你在 Rust 中为 MPV 创建插件

1 个不稳定版本

0.5.0 2023 年 11 月 16 日

#5#libmpv

GPL-3.0 许可协议

35KB
630

Rust 中的 MPV 插件

为 libmpv 客户端 API 提供绑定,允许你在 Rust 中为 MPV 创建插件。

这是一个基于 TheCactusVert/mpv-client 的分支,支持在 Windows 上开发 mpv C 插件。

目前,这个软件包与原始版本兼容。

示例

以下是一个 Cargo.toml 的示例

[package]
name = "mpv-plugin"
version = "0.1.0"
edition = "2021"

[lib]
name = "mpv_plugin"
crate-type = ["cdylib"]

[dependencies]
mpv-client-dyn = "0.5.0"

然后是代码 src/lib.rs

use mpv_client_dyn::{mpv_handle, Event, Handle};

#[no_mangle]
extern "C" fn mpv_open_cplugin(handle: *mut mpv_handle) -> std::os::raw::c_int {
  let client = Handle::from_ptr(handle);
  
  println!("Hello world from Rust plugin {}!", client.name());
  
  loop {
    match client.wait_event(-1.) {
      Event::Shutdown => { return 0; },
      event => { println!("Got event: {}", event); },
    }
  }
}

你可以在 CRust 中找到更多示例。

依赖项

~0.1–5MB