gpt4 book ai didi

python - Python如何使用Windows Media Player打开和播放mp3文件列表

转载 作者:太空宇宙 更新时间:2023-11-04 02:31:25 25 4
gpt4 key购买 nike

我想使用 Python 在 Windows Media Player 上打开和播放 .mp3 文件列表。我已经能够打开一个文件:

os.startfile(path_to_file)

但我想打开整个播放列表。这类似于选择文件夹中的所有文件,右键单击并选择“添加到 Windows Media Player 列表”。我会设想这样的事情:

for i in range(NumberOfSongs): 
os.startfile(Files[i])

但这只是循环播放轨道直到最后一首轨道并仅播放该轨道。有谁知道如何将此功能与文件列表或将打开媒体播放器并向其添加文件列表的其他功能一起使用?

最佳答案

os.startfile将只使用默认关联程序打开文件,类似于双击它时发生的情况。您可以尝试几件事。

您可以尝试创建一个.m3u 播放列表文件。遍历文件并以编程方式创建它。我建议查看确切的详细信息,但它们看起来像这样:

#EXTM3U
#EXTINF:1,Artist - Song title 1
D:\path\to\file\01 Song.mp3
#EXTINF:1,Artist - Song title 2
D:\path\to\file\02 Song.mp3

这个文件还有一个关联的程序,所以你可以用 os.startfile 打开它。 EXTINF 之后的数字是以秒为单位的轨道长度。由于我试过的播放器会显示正确的时间,因此似乎没有必要绝对正确。不过,WMP 似乎不喜欢 0 值,因此至少应使用 1 值。路径可以是绝对路径或相对路径。

还有.m3u8如果您需要,这是 UTF-8 版本。


您的另一个选择是尝试找到要执行的命令以添加到 WMP 播放列表。 This似乎是可用于 WMP 的命令。您可能想要那个 /Task NowPlaying 一个?他们没有使用它的完整示例,也不清楚您是否可以将其与打开文件混合使用。

一旦您了解任务并仅通过命令行使其工作,您就可以尝试使用 subprocess 中的内容来执行它。模块。取决于你的 python 版本:

import shlex
import subprocess
from subprocess import PIPE

command = 'wmplayer "c:\filename.wma"'
subprocess.run(shlex.split(command), stdout=PIPE, stderr=PIPE)

不要引用我的话,因为我没有运行这个的环境,但应该接近那个。您可能需要也可能不需要 stdout=PIPE, stderr=PIPE。这将捕获 out 和 err 输出,因此您可以根据需要打印它们,但如果输出很大,也会很麻烦。

关于python - Python如何使用Windows Media Player打开和播放mp3文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49078547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com