Ответы пользователя по тегу Python
  • Зависает GUI при выполнении цикла в отдельном потоке. Как исправить?

    K_DOT
    @K_DOT Автор вопроса
    DevOps инженер
    Наконец-то я нашел ответ. Оказалось, я неправильно запускал поток. Насколько я понял, это было из-за того, что запускал поток вне класса PlayerGui. Примерно такой код запуска потока у меня получился.
    class PlayerGui(QtGui.QWidget):
        def __init__(self, parent=None):
            QtGui.QWidget.__init__(self, None)
    
            self.th = ConfThread(ex='player')
    
            self.lmain = QtGui.QGridLayout(self)
            self.layout = QtGui.QGridLayout()
            self.setGeometry(600, 300, 600, 500)
            self.setMinimumSize(400, 450)
            self.butPlay = QtGui.QPushButton("start", self)
            self.layout.addWidget(self.butPlay,3, 0)
    
            self.connect(self.butPlay, QtCore.SIGNAL("clicked()"), self.start)
            
            self.lmain.addLayout(self.layout, 0,0)
    
    
        def start(self):
            self.th.start()
    Ответ написан
    Комментировать
  • Как воспроизвести аудио(.mp3) на python?

    K_DOT
    @K_DOT
    DevOps инженер
    PyGame
    import pygame
    pygame.init()
    song = pygame.mixer.Sound('file.mp3')
    clock = pygame.time.Clock()
    song.play()
    while True:
        clock.tick(60)
    pygame.quit()

    Pyglet
    import pyglet
    song = pyglet.media.load('file.mp3')
    song.play()
    pyglet.app.run()

    GStreamer
    import pygst
    pygst.require('0.10')
    import gst
    import gobject
    import os
    
    mainloop = gobject.MainLoop()
    pl = gst.element_factory_make("playbin", "player")
    pl.set_property('uri','file://'+os.path.abspath('file.mp3'))
    pl.set_state(gst.STATE_PLAYING)
    mainloop.run()


    Еще можно попробовать PyMedia и PyAudio
    Ответ написан
    2 комментария