用Python在Windows Media Player中排队播放一个文件夹的.mp3文件

1 投票
1 回答
972 浏览
提问于 2025-04-17 12:21

在Windows媒体播放器中,有办法播放一个文件夹里的所有.mp3文件吗?

我现在用的是Python 3.2,之前写了一段代码,可以找到我音乐文件夹里一个随机专辑的绝对路径。 我想把这个路径用来打开Windows媒体播放器,然后播放那个文件夹里的音乐。

有没有什么建议呢?

这里是我的代码,供参考:

import random
import os

path = ["Q:\\#User\\Music\\", "Q:\\#user\\What CDs\\"]
print("You shall play " + random.sample(list(filter(lambda f: len([i for i in f if i in "."]) == 0, sum(map(lambda d: list(map(lambda e: d + "\\" + e,os.listdir(d))),list(filter(lambda c: len([i for i in c if i in "."]) == 0, sum(map(lambda a: list(map(lambda b: a + b ,os.listdir(a))), path), [])))), []) )), 1)[0])


input()

对了,理想情况下,这段代码不会写成一行。我在学习怎么使用maplambda的时候,想挑战一下自己。 现在我想再进一步,播放那个随机专辑的音乐。

谢谢!

1 个回答

1

嗯,听起来是个有趣的主意。

我可能会动态创建一个 .m3u 文件,然后把它作为命令行参数传给 Windows 媒体播放器(根据 WMP 命令行,这是完全可以做到的)。

.m3u 文件其实就是一个文本文件。这里有一个关于 Tool 乐队专辑《Undertow》的 .m3u 文件示例:

#EXTM3U
#EXTINF:295,Tool - Intolerance
01 - Intolerance.mp3
#EXTINF:296,Tool - Prison Sex
02 - Prison Sex.mp3
#EXTINF:307,Tool - Sober
03 - Sober.mp3
#EXTINF:434,Tool - Bottom
04 - Bottom.mp3
#EXTINF:330,Tool - Crawl Away
05 - Crawl Away.mp3
#EXTINF:332,Tool - Swamp Song
06 - Swamp Song.mp3
#EXTINF:322,Tool - Undertow
07 - Undertow.mp3
#EXTINF:363,Tool - 4°
08 - 4°.mp3
#EXTINF:466,Tool - Flood
09 - Flood.mp3
#EXTINF:947,Tool - Disgustipated
69 - Disgustipated.mp3

祝你好运!

PS - 你可以通过导入 os 模块来调用命令行参数,然后使用 os.system("YOUR DOS COMMAND")

哦,还有 .m3u 文件使用的格式:

#EXTINF:<song-time-in-seconds>, <Artist> - <Song>
<Track_Num> - <File name>

如果这还不够清楚的话。

撰写回答