我正在尝试让 python 将音乐文件排入 Winamp。我尝试了以下方法:
某些功能有效,但添加到播放列表无效
一些命令行开关再次起作用,但加载文件不起作用
有谁知道一些方法来完成这件事?我不是在寻找一个完整的 winamp 控制器,只是一种在已经运行的实例中将文件推送到播放列表中的方法。
我正在使用 winamp 5.63 和 windows 7 x64 和 python 2.7
不太确定这是否是您正在寻找的,但我希望它可以帮助...
我找到了一个粗略的方法,那就是:
进入Winamp,转到选项->首选项->文件类型,然后选中“双击时排队文件”框,然后接受首选项。
完成后,以下 Python 代码将从给定目录中将 20 首(或您设置 while 循环的多少首)歌曲放入播放列表中。
此外,如果您不希望歌曲是随机的,您可以将路径变量指定为您选择的任何文件的文件路径
import os
import random
import dircache
i = 0
while i < 20: # change 20 to how ever many songs you want to generate
# set your directory in line bellow
dir = "C:\"
filename = random.choice(dircache.listdir(dir))
path = os.path.join(dir, filename)
os.startfile(path)
i+=1
我在 Windows 8 64 位上使用 Python 3 并使用 pywinamp.py 我可以将文件添加到播放列表并播放文件。这是我的代码:
# Run winamp.exe
try:
with open(os.devnull, 'wb') as devnull:
devnull = open(os.devnull)
winamp_path = 'C:\\Program Files\\Winamp\\winamp.exe'
p = subprocess.Popen([winamp_path], stdout=devnull, stderr=devnull)
except OSError as e:
# handle the exception
pass
w = Winamp() # class from pywinamp.py
# Wait for app to start
''' For some reason i couldn't access __mainWindowHWND attribute of Winamp class so i added this line in __init__ method of Winamp class: self.wid = self.__mainWindowHWND. This way i know if winamp is open'''
while not w.wid:
w = Winamp()
time.sleep(2)
# Enqueue file in Winamp
w.enqueueFile(filepath.encode('utf-8')) # ctypes needs bytes type
# Get length of winamp playlist and set position on the last track
w.setPlaylistPosition(w.getListLength())
# Play song
w.play()
pywinamp 可以正常使用 python 2.7 x86,但不能使用 python 2.7 x64。以便。