play music using pygame but no sound

2019-02-09 11:56发布

问题:

import pygame
pygame.mixer.init()
pygame.mixer.music.load("only one.mp3")
pygame.mixer.music.play(0)
while pygame.mixer.music.get_busy():
    pygame.time.Clock().tick(10)

When I run the code, there's no sound and the program ends in like a second. Initially I didn't have the while loop until I saw the suggestions in the answers to similar questions. The program does enter the while loop on my friend's windows system, but not on my mac, and it doesn't have any sound either even on my friend's windows system. Does anybody know how to solve it?

回答1:

Works well on Ubuntu 10.04 and Pygame 1.9.1.

Some things you can try:

  • initialize whole pygame pygame.init()
  • i_4_got's suggestion (create a display) pygame.display.set_mode((200,100))
  • put a pause (tick) between play an get_busy
  • poll events inside the loop pygame.event.get()

Example:

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

clock = pygame.time.Clock()
clock.tick(10)
while pygame.mixer.music.get_busy():
    pygame.event.poll()
    clock.tick(10)


回答2:

Pygame sound not working fix

INFO

Try reinstalling pygame or upgrading it I had version 1.9.1 which I upgraded to 1.9.3 by the following command

pip install pygame --upgrade

Note:


If you install it with easy_install it does'nt work . Not sure but when I tried with easy_install it doesn't work


The code is the same as yours but i just replaced it with my music file to check it.
You can see it in the image :

In this image

.wav files seem to work well

I checked it with .mp3 files and found that it does'nt work. You can convert .mp3 to .wav from : Converter

Or use PyMedia
If you do not want to convert it using any website.
You can also convert it with pydub.

You can download pydub from this

link

Or type this command in the command line:

pip install pydub


回答3:

import winsound
winsound.PlaySound(filename [as string with path if necessary], flag [integer z.B. 1 for asynchronous] )

This works fine with Windows 8 and Python 2.7.6 and *.wav files

The different flags you can check if you type winsound. and look for the autofill list.
The flags are like SND_FILENAME or similar.
If you type them into the editor like: *winsound.SND_FILENAME you get the integer to apply in the PLaySound command from above

Have fun



回答4:

it would be easier if u changed the mp3 to ogg format ,try this.. its simple

from pygame import *
pygame.init()
pygame.mixer.music.load("only one.ogg")
pygame.mixer.music.play(-1)
pygame.mixer.music.set_volume(0.3)

vote the answer if its working, if not tell me whats wrong