我正在尝试使用pyo库播放声音。
如下代码:
from psychopy import sound, logging, core
logging.console.setLevel(logging.DEBUG)
from pyo import *
s = Server()
s.setInputDevice(4)
s.setOutputDevice(4)
s.boot()
s.start()
print "output", pa_get_output_devices()
print "input", pa_get_input_devices()
play_audio1 = sound.SoundPyo(value = 'LRsound.wav', stereo = True)
play_audio1.play()
core.wait(1) # wait so the sound can play
返回此输出:
从代码和输出中可以看到,我试图确保输入和输出设备相同。
这是由于有关非法组合I / O设备的消息所致。当然,您也可以看到我的尝试失败了。无论是否带有
Server()
代码块,都会出现相同的错误消息。我在PsychoPy中运行了以上代码。当我在Spyder中运行相同的代码时,它实际上并没有通过:
play_audio1 = sound.SoundPyo(value = 'LRsound.wav', stereo = True)
它只是挂着无所事事。
知道为什么pyo没有像应该那样玩python吗?关于如何解决的任何想法?
谢谢你的时间。
最佳答案
您必须先进行boot()
的Server
编码,然后再执行其他操作,因此您的代码行应为:
import pyo
s = pyo.Server()
s.boot()
s.start()
s.setInputDevice(4)
s.setOutputDevice(4)
然后,您可以使用
SfPlayer
中的pyo
类来播放声音文件:play_audio1 = pyo.SfPlayer(path="LRsound.wav", speed=[1, 1])
play_audio1.out()
并运行gui界面:
s.gui(locals(), exit=False)