0

我正在尝试让 python 将音乐文件排入 Winamp。我尝试了以下方法:

pywinamp

某些功能有效,但添加到播放列表无效

WACommand

一些命令行开关再次起作用,但加载文件不起作用

有谁知道一些方法来完成这件事?我不是在寻找一个完整的 winamp 控制器,只是一种在已经运行的实例中将文件推送到播放列表中的方法。

我正在使用 winamp 5.63 和 windows 7 x64 和 python 2.7

4

3 回答 3

2

不太确定这是否是您正在寻找的,但我希望它可以帮助...

我找到了一个粗略的方法,那就是:

进入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
于 2013-09-03T08:19:22.287 回答
2

我在 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()
于 2015-07-14T17:54:20.607 回答
0

pywinamp 可以正常使用 python 2.7 x86,但不能使用 python 2.7 x64。以便。

于 2013-08-25T19:54:04.903 回答