В Pygame нет звука - PullRequest
0 голосов
/ 05 июня 2019

Я сделал программу для произвольного воспроизведения музыки с использованием python-pygame. При попытке запустить звук не воспроизводился ... Кстати, я думаю, что проблема в Pygame, потому что громкость MAX, и его можно нормально слышать даже при игре .mp3

music.py

import pygame
import sys
import glob
from random import shuffle

x = glob.glob("sound/*.mp3") 
shuffle(x)

print(x[1])

pygame.mixer.init()
pygame.mixer.music.load(x[1])
pygame.mixer.music.play(2) 

while False:
    x = 1

pygame.mixer.music.stop() 
sys.exit()

1 Ответ

1 голос
/ 05 июня 2019

Кажется, вы хотите воспроизвести только один файл, выбранный случайным образом. Вы хотите что-то вроде этого:

import pygame
import sys
import glob
from random import choice

allmusic = glob.glob("*.mp3") 
played = choice(allmusic) #select randomly one element from the list

print(played) #print the name of the chosen file
pygame.mixer.init()

pygame.mixer.music.load(played)
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
    pass

последний цикл while проверяет, воспроизводится ли музыка, и ничего не делает, пока музыка не закончится. Его цель - сохранить работоспособность программы, в противном случае она немедленно заканчивается и музыкальный поток прекращается.

Обратите внимание, что у вас нет контроля над музыкой, она будет воспроизводиться до конца без возможности остановить ее раньше. Чтобы иметь некоторый контроль такого рода, вам нужен более сложный сценарий обработки событий (с клавиатуры или из пользовательского интерфейса, который вы создаете, но я думаю, это слишком далеко от вашего вопроса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...