MP3 播放将在线程 Python 中运行的模块



我正在尝试编写一个可以播放MP3的程序。该程序还将具有GUI。为了让两者同时发生,我正在实现线程。但是,我遇到了一个问题。每当我运行程序时,一切都会正常执行,除了没有声音出来。没有错误,什么都没有。就好像跳过了命令一样。通过消除过程,我相信我发现问题是由我在线程(self)内运行程序的音乐播放部分时引起的。MP.controls.play()).

有没有人熟悉其他模块,这些模块将允许我在线程中播放音乐?或者有人知道可能导致问题的原因吗?

法典:

import GUIThread as GUIT # GUIThread is just an interface I made for the threading module, just act as if it was threading.  
from win32com.client import Dispatch
class Test :
    def __init__ (self) :
        self.Dir = r'song.mp3'
        self.Thread = GUIT.Thread(self, func=self.play_song, loop=False)
        self.MP = Dispatch('WMPlayer.OCX')
        song = self.MP.newMedia(self.Dir)
        self.MP.currentPlaylist.appendItem(song)
    def start (self) :
        # Starts the thread. 
        # Equivalent to :
        # t = threading.Thread(target=self.play_song)
        # t.start()
        self.Thread.start()
    def play_song (self) :
        # This whole function is done within the thread.
        if self.Dir != None :
            print self.Dir
            self.MP.controls.play()

    def protocol (self, val0, val1) :
        # Ignore this it's unrelated
        pass
T = Test()
T.start()

这是在Windows 7中,顺便说一句。

编辑:另外,我将使用Tkinter作为GUI工具包。

你可以试试pymedia或pyglet。我知道pygame也有mp3支持。

相关内容

  • 没有找到相关文章

最新更新