0

私はPythonで音楽ファイルをWinampにエンキューしようとしています。私は次のことを試しました:

パイウィンアンプ

一部の機能は動作しますが、プレイリストへの追加は動作しません

WAコマンド

ここでも、いくつかのコマンド ライン スイッチは機能しますが、ファイルのロードは機能しません

これを行う方法を知っている人はいますか?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 に答える