Skip to content

Using mpv from other programs or scripts(从其他程序或脚本使用 mpv)

有三种方式可以从其他程序或脚本使用 mpv:

1. 作为 UNIX 进程调用

如果您这样做,不要解析终端输出。终端输出是为人类准备的,可能随时更改。此外,终端行为本身也可能随时更改。无法保证兼容性。

您的代码应该在传递 --terminal=no 时也能工作。不要尝试通过向 mpv 的 stdin 发送终端控制代码来模拟用户输入。如果您需要交互式控制,建议使用 --input-ipc-server--input-ipc-client。这使您可以通过 Unix 域套接字(或 Windows 上的命名管道)访问 JSON IPC。

根据您的操作,传递 --no-config--config-dir 可能是避免与正常 mpv 用户配置冲突的好主意。

使用 --input-ipc-server--input-ipc-client 也适用于远程控制等目的(但是,IPC 协议本身不"安全",也不打算如此)。

2. 使用 libmpv

当 mpv 用作完全不同的应用程序的播放后端时,通常建议使用 libmpv。提供的 C API 非常接近 CLI 机制和脚本 API。

请注意,尽管 libmpv 具有不同的默认值,但它可以配置为与 CLI 播放器完全相同的工作方式(除了命令行解析不可用)。

参见 EMBEDDING INTO OTHER PROGRAMS (LIBMPV)

3. 作为用户脚本

作为用户脚本(LUA SCRIPTINGJAVASCRIPTC PLUGINS)。当目标是"增强"CLI 播放器时,建议使用此方法。脚本可以访问 mpv 的整个客户端 API。

这是为播放器创建第三方扩展的标准方式。

客户端 API

所有这些都访问客户端 API,这是播放器核心提供的各种机制的总和,如下所述:

  • OPTIONS - 选项
  • COMMANDS - 命令列表
  • Properties - 属性
  • Events - 事件
  • Hooks - 钩子

相关链接