我正在尝试使用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)

08-24 22:16