How do play audio (playsound) in background of Pyt

2019-04-03 01:01发布

问题:

I am just writing a small python game for fun and I have a function that does the beginning narrative.

I am trying to get the audio to play in the background but unfortunately the mp3 file plays first before the function continues.

How do I get it to run in the background?

import playsound

def displayIntro():
playsound.playsound('storm.mp3',True)
print('')
print('')
print_slow('The year is 1845, you have just arrived home...')

Also, is there any way of controlling the volume of the play sound module?

I should add that I am using a Mac, and I am not wedded to using playsound, it just seems to be the only module that I can get working.

回答1:

In windows:

Use winsound.SND_ASYNC to play them asynchronously

import winsound
winsound.PlaySound("filename", winsound.SND_ASYNC | winsound.SND_ALIAS )

To stop playing

winsound.PlaySound(None, winsound.SND_ASYNC)

In mac or other platforms: You can try this Pygame/SDL

pygame.mixer.init()
pygame.mixer.music.load("file.mp3")
pygame.mixer.music.play()


回答2:

Well you could just use pygame.mixer.music.play(x)

#!/usr/bin/env python3
# Any problems contact me on instagram @vulnerabilties
import pygame

pygame.mixer.init()
pygame.mixer.music.load('filename.extention')
pygame.mixer.music.play(999)
# YOUR CODE HERE


回答3:

There is a library In pygame called mixer and you can add a mp3 file to the folder with the python script inside and put code like this inside:

from pygame import mixer
mixer.init()
mixer.music.load("mysong.mp3")
mixer.music.play()

I hope you found my answer helpful



回答4:

Just change True to False (I use python 3.7.1)

import playsound
playsound.playsound('storm.mp3', False)
print ('...')


回答5:

from pygame import mixer

mixer.music.init()
mixer.music.load("audio.mp3") # Paste The audio file location 
mixer.play() 


回答6:

Playsound has an option for running in the background -> additional argument to be set to 0:

playsound('xxxxx.mp3", **0**)