Playing Sound On Right Or Left Speaker On Mouseover
I am trying to make small program in python, using PyQt5. The program will as have two buttons, and a label in the middle. When the mouse goes over the label, I want to call a def,
Solution 1:
When you use pygame
in general, prefer calling pygame.init()
to initialise all of the pygame
modules instead of typing separately pygame.
module
.init()
. It will save you time and lines of code.
Then, to play a sound file in pygame
, I generaly use pygame.mixer.Sound
to get the file, then I call the play()
function of the sound object.
So the following imports a sound file, then plays and pans it according to the mouse X position
import pygame
from pygame.localsimport *
pygame.init() # init all the modules
sound = pygame.sound.Sound('Aloe Blacc - Wake Me Up.wav')) # import the sound file
sound_played = False# sound has not been played, so calling set_volume() will return an error
screen = pygame.display.set_mode((640, 480)) # make a screen
running = Truewhile running: # main loopfor event in pygame.event.get():
if event.type == QUIT:
running = Falseelif event.type == MOUSEBUTTONDOWN: # play the sound file
channel = sound.play()
sound_played = True# start setting the volume now, from this moment where channel is defined# calculate the pan
pan = pygame.mouse.get_pos()[0] / pygame.display.get_surface().get_size()[0]
left = pan
right = 1 - pan
# pan the sound if the sound has been started to playif sound_played:
channel.set_volume(left, right)
pygame.display.flip()
Post a Comment for "Playing Sound On Right Or Left Speaker On Mouseover"