Windows 上的 mplayer fontconfig 烦恼

n61*_*007 7 windows fontconfig mplayer

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

我在想:如何让mplayer总是刷新字体缓存?

(这需要很多时间,当发生这种情况时,我通常会“措手不及”。通常只能使用 1 或 2 种字体,我经常将其视为“加害于侮辱”。)

我之前尝试过的其他构建用于重新加载每个新工作目录中的完整字体缓存,因为它们将缓存放置在该本地目录中。由于 Windows 二进制文件的最新版本的来源多年来以某种方式变化,因此很高兴知道 mplayer 实际尝试做什么。

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

注意:在过去,mplayer 曾经有一个单一的、内置的、默认字体。发生了什么?

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

Sco*_*hee 1

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

(请注意,它不是“%TEMP%”,而是“ %TMP% ”,但为 mplayer.exe 更改这两者并没有什么坏处,因此您可以同时设置两者。)

如何:

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

    设置 tmp=C:\Mplayer\Temp

    Mplayer.exe %*

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

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

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