import pygame
file = 'some.mp3'
pygame.init()
pygame.mixer.init()
pygame.mixer.music.load(file)
pygame.mixer.music.play()
Это выводит "Процесс завершен с кодом выхода 0", но он ничего не воспроизводит. Как я могу решить эту проблему?
import pygame
file = 'some.mp3'
pygame.init()
pygame.mixer.init()
pygame.mixer.music.load(file)
pygame.mixer.music.play()
Это выводит "Процесс завершен с кодом выхода 0", но он ничего не воспроизводит. Как я могу решить эту проблему?
Функция воспроизведения запускает воспроизведение музыки, но сразу возвращается. Затем ваша программа достигает цели, и объект pygame автоматически уничтожается, что заставляет музыку останавливаться.
Как вы прокомментировали, он воспроизводит музыку, если вы ее дожидаете до выхода - потому что тогда объект pygame не уничтожается до тех пор, пока цикл while не завершится.
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
Музыка останавливается, потому что это асинхронное событие, что означает, что он продолжит работу со сценарием. то сценарий останавливается мгновенно, не давая музыке шанс начать. как указано выше, вы можете использовать
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
однако еще лучше - pygame.event.wait()
, так как он будет ждать завершения всех асинхронных событий.
Я нашел хорошее решение от thepythongamebook.com:
pygame.mixer.pre_init(44100, -16, 2, 2048) # setup mixer to avoid sound lag
pygame.init()
pygame.mixer.init()
pygame.mixer.music.load('music_01.mp3')
pygame.mixer.music.play(-1)
Вот очень простой способ.
import pygame
file = 'some.mp3'
pygame.init()
pygame.mixer.init()
pygame.mixer.music.load(file)
pygame.mixer.music.play()
pygame.event.wait()
Попробуй это,
#!/usr/bin/env python
import pygame
from Tkinter import *
file = 'Your MP3 here'
root = Tk()
pygame.init()
pygame.mixer.init()
pygame.mixer.music.load(file)
pygame.mixer.music.play()
root.mainloop()
вам нужно будет установить Tkinter, однако он, надеюсь, будет работать, и вам не нужно вручную устанавливать время. Если это сработало, сообщите мне, я проверил это на своем компьютере, но иногда вещи просто не работают. Я постараюсь помочь вам, если смогу.
Кажется, что звук не воспроизводится из-за того, как вы его импортировали. Приведенный ниже код воспроизводит звук, как ожидалось. Здесь ничего не изменилось, кроме как import pygame
он использует from pygame import mixer
. Это может быть связано с тем, что Pygame - это пакет, но я не уверен.
from pygame import mixer
file = 'some.mp3'
mixer.init()
mixer.music.load(file)
mixer.music.play()
Попробуй это.
import pygame
def pmusic(file):
pygame.init()
pygame.mixer.init()
clock = pygame.time.Clock()
pygame.mixer.music.load(file)
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
print("Playing...")
clock.tick(1000)
def stopmusic():
pygame.mixer.music.stop()
def getmixerargs():
pygame.mixer.init()
freq, size, chan = pygame.mixer.get_init()
return freq, size, chan
def initMixer():
BUFFER = 3072 # audio buffer size, number of samples since pygame 1.8.
FREQ, SIZE, CHAN = getmixerargs()
pygame.mixer.init(FREQ, SIZE, CHAN, BUFFER)
try:
initMixer()
file = 'C:\\data\\03.mp3'
pmusic(file)
except KeyboardInterrupt: # to stop playing, press "ctrl-c"
stopmusic()
print("\nPlay Stopped by user")
except Exception:
print("unknown error")
print("Done")