Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在鼠标上方的右侧或左侧扬声器上播放声音_Python_Pygame_Onmouseover - Fatal编程技术网

Python 在鼠标上方的右侧或左侧扬声器上播放声音

Python 在鼠标上方的右侧或左侧扬声器上播放声音,python,pygame,onmouseover,Python,Pygame,Onmouseover,我正在尝试用python编写一个小程序,使用PyQt5。 程序将有两个按钮,中间有一个标签。当鼠标移动到标签上时,我想调用def,以更改按钮的颜色并播放特定扬声器(左或右)的声音 我尝试了pygame,跟踪了一些帖子,但什么都没有。两个频道都在播放声音 import time import pygame pygame.mixer.init(44100, -16,2,2048) channel1 = pygame.mixer.Channel(0) # argument must be int c

我正在尝试用python编写一个小程序,使用PyQt5。 程序将有两个按钮,中间有一个标签。当鼠标移动到标签上时,我想调用def,以更改按钮的颜色并播放特定扬声器(左或右)的声音

我尝试了pygame,跟踪了一些帖子,但什么都没有。两个频道都在播放声音

import time
import pygame

pygame.mixer.init(44100, -16,2,2048)
channel1 = pygame.mixer.Channel(0) # argument must be int
channel2 = pygame.mixer.Channel(1)
print('OkkK')

soundObj = pygame.mixer.Sound('Aloe Blacc - Wake Me Up.wav')
channel2.play(soundObj)
soundObj.set_volume(0.2)

time.sleep(6) # wait and let the sound play for 6 second
soundObj.stop()
有没有办法解决这个问题并选择左右扬声器


还有,有没有一种方法可以在标签上用鼠标调用def?

当您使用
pygame
时,通常更喜欢调用
pygame.init()
来初始化所有
pygame
模块,而不是单独键入
pygame.
模块
.init()
。它将节省您的时间和代码行


然后,为了在
pygame
中播放声音文件,我通常使用获取文件,然后调用声音对象的
play()
函数

因此,下面导入一个声音文件,然后根据鼠标X位置播放和平移它

导入pygame
从pygame.locals导入*
pygame.init()#初始化所有模块
sound=pygame.sound.sound('Blacc-Wake Me Up.wav'))#导入声音文件
播放的声音=错误
#声音尚未播放,因此调用set_volume()将返回错误
screen=pygame.display.set_模式((640480))#制作一个屏幕
运行=真
运行时:#主回路
对于pygame.event.get()中的事件:
如果event.type==退出:
运行=错误
elif event.type==MOUSEBUTTONDOWN:#播放声音文件
频道=声音。播放()
播放的声音=真
#现在开始设置音量,从定义频道的这一刻开始
#算盘
pan=pygame.mouse.get_pos()[0]/pygame.display.get_surface().get_size()[0]
左=平移
右=1-平移
#如果声音已开始播放,则平移声音
如果播放声音(u):
频道。设置音量(左、右)
pygame.display.flip()

我们对代码块使用反勾号(
`
),而不是撇号(
),这是否回答了您的问题?channel.set_volume(左、右)name错误:未定义名称“channel”,是否应添加:“channel=pygame.mixer.channel(0)”?抱歉,我编辑了我的答案。我忘了管理这样一个事实:如果没有播放声音,程序不需要设置音量。