Почему Pygame не воспроизводит mp3 без display?

import pygame
pygame.init()
pygame.display.set_mode((100,200))
pygame.mixer.music.load("first.mp3")
pygame.mixer.music.play(0)

если убрать сточку display.set_mode, скрипт работает, но музыка не проигрывается. Можно как либо воспроизвести mp3 без окна? Ну или создать невидимое окно .
  • Вопрос задан
  • 2174 просмотра
Решения вопроса 1
TomasHuk
@TomasHuk
Я когда-то использовал такой код (файл sound/sound.py):
import pygame, sys
def play(song):
    pygame.mixer.music.load(song)
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy():
            pos = pygame.mixer.music.get_pos()/ 1000

if __name__=='__main__':
    if len(sys.argv) > 1:
        song = sys.argv[1]
    else:
        song = 'file.mp3'

    pygame.mixer.init(22050, -16, 2, 2048)
    pygame.mixer.music.set_volume(2.0)
    play(song)
    pygame.quit()

Вызывал из другого скрипта (файл play_song.py):
def run(song):
    import os, sys
    pypath = sys.executable
    os.spawnv(os.P_DETACH, pypath, ('python', 'sound/sound.py', song))

if __name__=='__main__':
    song = 'sound/file.mp3'
    run(song)

Запуск одной строчкой с третьего скрипта:
import play_song
play_song.run('sound/first-file.mp3')

Воспроизводит mp3 без окна, в виде отдельного процесса.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@BarbosNikitos
from pygame import *
init()
from pygame import mixer
mixer.init()
song = mixer.music.load('Music2.mp3')
clock = time.Clock()
mixer.music.play(-1)
while True:
clock.tick(60)
quit()

Прикол в том что mp3 загружается с помощью load а wav и другие через Sound
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы