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 SCRIPTING、JAVASCRIPT、C PLUGINS)。当目标是"增强"CLI 播放器时,建议使用此方法。脚本可以访问 mpv 的整个客户端 API。
这是为播放器创建第三方扩展的标准方式。
客户端 API
所有这些都访问客户端 API,这是播放器核心提供的各种机制的总和,如下所述:
相关链接
- JSON IPC - JSON IPC 接口
- EMBEDDING (LIBMPV) - 嵌入其他程序
- LUA SCRIPTING - Lua 脚本
- JAVASCRIPT - JavaScript 脚本
- C PLUGINS - C 插件