使用Py在Python中播放声音

2024-09-29 21:28:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用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  

返回此输出:

pyo version 0.8.0 (uses single precision)

Portmidi warning: could not open midi output 0 (Microsoft MIDI Mapper): PortMidi: `Host error'

output (['Microsoft Sound Mapper - Output', 'Speakers / Headphones (Realtek ', 'Primary Sound Driver', 'Speakers / Headphones (Realtek High Definition Audio)', 'Realtek ASIO', 'Speakers / Headphones (Realtek High Definition Audio)'], [0, 1, 2, 3, 4, 5])

input (['Realtek ASIO'], [4])

Server not booted. The Server must be booted! portaudio error in Pa_OpenStream: Illegal combination of I/O devices Portaudio error: Illegal combination of I/O devicesportaudio error in Pa_AbortStream: Invalid stream pointer portaudio error in Pa_CloseStream: Invalid stream pointer

从代码和输出可以看出,我试图确保输入和输出设备是相同的。在

这是由于有关非法组合I/O设备的消息造成的。当然,你也可以看到我的尝试失败得很惨。无论是否有Server()代码块,都会出现相同的错误消息。在

我在《神经病》里查过上面的代码。当我在Spyder中运行相同的代码时,它实际上从未通过:

^{pr2}$

它什么也不做。在

你知道pyo为什么没有像它应该的那样玩python吗?我有什么想法吗?在

谢谢你的时间。在


Tags: 代码ininputoutputplayserverloggingerror
2条回答

我最终放弃了pyo库,并在从psycopy导入sound之前,通过执行以下操作,成功地使用PyGame在psycpy中播放声音:

from psychopy import prefs
prefs.general['audioLib'] = ['pygame']

。。。在

^{pr2}$

我发现Pyo在使用windows7pro时是个噩梦。希望这个关于PyGame的工作会有用。在

在做任何其他事情之前,您必须boot()Server,因此您的行应该是:

import pyo

s = pyo.Server()
s.boot()
s.start()
s.setInputDevice(4)
s.setOutputDevice(4)

然后您可以使用pyo中的SfPlayer类来播放声音文件:

^{pr2}$

并运行gui界面:

s.gui(locals(), exit=False)

相关问题 更多 >

    热门问题