为什么这个 VLC CLI 代码只在某些时候阻止我的提示?

为什么这个 VLC CLI 代码只在某些时候阻止我的提示?

所以我有一个 Python 脚本,它运行一个系统调用,在加载播放列表之前获取一些输入并进行一些计算。

我首先运行此脚本来加载 VLC 媒体播放器

start vlc --random --loop --playlist-autostart --qt-start-minimized --one-instance --mmdevice-volume=0.35

然后我循环播放列表,对每个要添加到 VLC 播放器的文件运行此代码

vlc --one-instance --playlist-enqueue "X:\Music\filename.mp3"

奇怪的是,当我运行该程序时最初,只有第一个文件被添加到播放列表中,并且我的提示被阻止。只有关闭 vlc 播放器后,下一首歌曲才会再次播放。
所以我通常会关闭脚本并再次执行,这次它会一次性加载整个播放列表

这里发生了什么 ?

答案1

这里发生了什么?

根据我的经验,使用脚本通过 VLC 从命令行播放项目在 Windows 上容易出现不一致。特别是,vlc --one-instance --playlist-enqueue似乎对 VLC 的其他实例及其启动方式很敏感。

您描述的行为(VLC 加载一项并阻止命令提示符直到关闭)可能会在仅使用 运行 VLC 时发生vlc(而不是在使用 的初始实例之后start vlc)。

我的猜测是(无论出于什么原因),您的start vlc命令可能会遇到一个小的延迟,并且 Python 脚本将继续vlc在您的循环中运行(这意味着在完成vlc之前运行start vlc,因此start vlcVLC 会忽略它)。但是,它的额外运行可能会受益于某种缓存,因此并不总是会遇到延迟。

相关内容