музыка в python
Я захотел, что бы в моей консольной программе python играла музыка на фоне, но не смог этого сделать! Я попробовал такие варианты кодов:
1)
import pygame
pygame.init()
song = pygame.mixer.Sound('file.mp3')
clock = pygame.time.Clock()
song.play()
while True:
clock.tick(60)
pygame.quit()
2)
import pyglet
song = pyglet.media.load('file.mp3')
song.play()
pyglet.app.run()
3)
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()
Но ни один не сделал нужное, либо музыка проигрывалась, и только после этого программа запускалась, либо оно всё крашилось, либо музыка не играла вообще! Форматы и качество музыки менял, не помогало, все нужные библеотеки установленны.
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Как вариант:
import pygame, pygame.mixer, time
from pygame.locals import *
class Game():
def __init__(self):
pygame.init()
self.game_start = True
self.window_width = 1200
self.window_height = 600
self.window = pygame.display.set_mode((self.window_width, self.window_height))
self.background = pygame.image.load("img/background.jpg") # !!!
self.background = pygame.transform.scale(self.background, (self.window_width, self.window_height))
...
# МУЗЫКА
pygame.mixer.init()
pygame.mixer.set_reserved(0)
self.game_music = pygame.mixer.Sound("sounds/game_music.wav") # !!!
pygame.mixer.Channel(0).play(self.game_music,-1)
# FPS
self.fps = pygame.time.Clock()
# LOOP
self.game_init = True
while self.game_init:
self.fps.tick(30)
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
...
self.window.blit(self.background,(0,0))
pygame.display.update()
Game()
