我正在运行 Python 代码来记录在 Google Compute Engine VM(Ubuntu 18.04)中的浏览器上播放的音频。
这是我正在运行的基本代码:
import sounddevice as sd
samplerate = 44100 # Hertz
duration = 30 # seconds
mydata = sd.rec(0, samplerate=samplerate,channels=2)
当我以用户身份 ssh 进入它时,sounddevice 可以正常工作,但是当我更改为 root 时,PortAudio 返回此错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/gowthamsathyan/v/lib/python3.6/site-packages/sounddevice.py", line 280, in rec
ctx.input_dtype, callback, blocking, **kwargs)
File "/home/gowthamsathyan/v/lib/python3.6/site-packages/sounddevice.py", line 2498, in start_stream
**kwargs)
File "/home/gowthamsathyan/v/lib/python3.6/site-packages/sounddevice.py", line 1382, in __init__
**_remove_self(locals()))
File "/home/gowthamsathyan/v/lib/python3.6/site-packages/sounddevice.py", line 778, in __init__
extra_settings, samplerate)
File "/home/gowthamsathyan/v/lib/python3.6/site-packages/sounddevice.py", line 2571, in _get_stream_parameters
info = query_devices(device)
File "/home/gowthamsathyan/v/lib/python3.6/site-packages/sounddevice.py", line 569, in query_devices
raise PortAudioError('Error querying device {0}'.format(device))
sounddevice.PortAudioError: Error querying device -1
两者都发生在同一个虚拟机上。我什至在运行代码之前以 root 身份启动了 Pulseaudio。
如果我做错了什么以及是否有解决方法,请告诉我。
谢谢