mplayer fontconfig 在 Windows 上很烦人

mplayer fontconfig 在 Windows 上很烦人

mplayer 构建我在 Windows 上使用时,每次重启计算机时都会重新加载字体缓存。我发现导致这种情况的原因是,我在重启时清除了临时目录,而字体缓存仍保留在那里。

我想知道:该怎么mplayer不是总是重新加载字体缓存?

(这需要花费大量时间,而且当这种情况发生时我通常“措手不及”。通常只能使用 1 或 2 种字体,我常常认为这是“雪上加霜”。)

我之前尝试过的其他版本用于在每个新工作目录中重新加载完整的字体缓存,因为它们将缓存放在该本地目录中。由于 Windows 二进制文件最新版本的来源多年来有所不同,因此了解 mplayer 实际尝试做什么会很有用。

  1. 如何让 fontconfig 在其他地方搜索字体(缓存)?
  2. mplayer 究竟是如何搜索字体的?(它总是依赖于fonts.conf?
  3. 是否可以从命令行禁用 fontconfig?那么 mplayer 会做什么?
  4. 即使字体确实发生变化,我可以禁用字体缓存的更新吗?(即“永远只使用已知的字体”)

注意:以前 mplayer 有一个内置默认字体。现在怎么样了?

我发现了一个相对于 mplayer.exe 的选项<cachedir>fonts/fonts.conf我可以使用它来解决 1。(当新版本发布时,我会手动更新它,但我经常忘记这样做。其余问题仍然存在。另外,它在哪里搜索 fonts/fonts.conf 文件?)

答案1

看来 Mplayer 依赖“%tmp%”值来创建字体缓存。这意味着您可能会让 mplayer.exe 进程看到不同的值,而“真实临时文件夹”中的其他进程不受影响。

(请注意,它不是“%TEMP%”,而是“%四甲基膦酸%“但将它们同时更改为 mplayer.exe 并没有什么坏处,所以您可以同时设置它们。)

如何:

  1. 在 mplayer 下创建一个临时文件夹。例如 C:\Mplayer\Temp
  2. 在 Mplayer.exe 路径下创建一个新的批处理文件。例如 C:\Mplayer\mplayerlaunch.bat
  3. 在新的批处理文件中填充以下内容:

    设置 tmp=C:\Mplayer\Temp

    %*

  4. 在 Windows 资源管理器中打开新的临时文件夹时测试批处理脚本。例如播放视频。

  5. 查看字体缓存文件夹是否在那里生成。如果生成了,则一切正常 - 现在您已经为 MPlayer 设置了一个专用的临时文件夹,该文件夹不受您安排的临时文件夹清理的影响。每次只需运行该批处理文件,而不是 MPlayer.exe。

附言:我知道您已经通过更改配置解决了这个问题。但是,通过这种方式,您不必在每次获得新版本时更改配置文件,因为您可以将此批处理文件放在实际 mplayer 文件夹之外的某个位置,安装新版本时不会覆盖该文件。

相关内容