Python模块wx不播放音频声音

时间:2014-09-12 15:21:08

标签: python audio module wxwidgets

在我的节目中,我尝试随机播放一些声音。但问题是,我听不到他们。我没有错误或类似的东西,我听不到声音。谢谢您的帮助。对不起,如果我的英语不好。这是我的代码:

import Tkinter as tk
import random
import wx

class SampleApp(tk.Tk):
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)

        self.state("zoomed")

        container= tk.Frame(self)
        container.config()
        container.pack(side="top", fill="both", expand=True)
        container.grid_rowconfigure(0, weight=2)
        container.grid_columnconfigure(0, weight=1)

        self.frames={}
        for F in (fenster, fensta):
            frame= F(container, self)
            self.frames[F]=frame
            frame.grid(row=0, column=0, sticky="nsew")
            frame.pack_propagate(0)

        self.show_frame(fenster)

    def show_frame(self, c):
        frame=self.frames[c]
        frame.tkraise()

class fenster(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

        button=tk.Button(self, text="Start",
                         command=lambda: controller.show_frame(fensta))
        button.pack()

class fensta(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        def ok():
            def do_a():
                def __init__(self, parent):
                    wx.Frame.__init__(self, parent)
                    self.test = wx.Sound('ja.wav')
                    self.test.Play(wx.SOUND_SYNC)

                print("a")

            def do_b():
                def __init__(self, parent):
                    wx.Frame.__init__(self, parent)
                    self.testa = wx.Sound('nein.wav')
                    self.testa.Play(wx.SOUND_SYNC)

                print("b")

            a=random.randint(1,2)

            if a==1:
                do_a()
            elif a==2:
                do_b()

        button=tk.Button(self, text="press",  command=ok)
        button.pack()

if __name__== "__main__":
    app=SampleApp()
    app.mainloop()

2 个答案:

答案 0 :(得分:0)

要测试你是否对wxPython本身有问题,请使用本应使用wxpython安装在系统上的the sound sample code

如果您无法使用示例代码获得声音,那么您遇到了wxpython的问题。某些Linux发行版和you need to recompile it by hand while enabling sound support to get sound output

存在一些问题

如果声音样本工作正常,那么您的问题可能是由于您在同一程序中混合tk和wx。这有什么理由吗?

答案 1 :(得分:0)

你不能混合wxPython和Tkinter,句号。