所以我有一个 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 vlc
VLC 会忽略它)。但是,它的额外运行可能会受益于某种缓存,因此并不总是会遇到延迟。