python - 在 Raspberry Pi 4 上无法使用 PyAudio 获得音频输出
问题描述
这里有点不知所措。目前,下面的代码不能正常播放 wav 文件。我添加了一些打印语句,发现while
循环永远不会结束。
我正在使用 Raspberry Pi 4。我使用...安装了 PyAudio
sudo apt-get install libasound-dev
sudo apt-get install portaudio19-dec
sudo apt-get install python3-pyaudio
奇怪的是录音作品。此外,使用aplay soundfile.wav
也有效。
def play(fileName):
CHUNK = 1024
wf = wave.open(fileName, 'rb')
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
channels=2,
rate=wf.getframerate(),
output=True,
output_device_index=0)
data = wf.readframes(CHUNK)
print("starting loop")
while len(data) > 0: # also tried: while data != ''
stream.write(data)
data = wf.readframes(CHUNK)
print("finished loop")
stream.stop_stream()
stream.close()
p.terminate()
play("soundfile.wav")
上面的代码导致以下消息。
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.pcm.dsnoop.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5047:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM sysdefault
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.pcm.dsnoop.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5047:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM sysdefault
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5036:(snd_config_expand) Args evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM bluealsa
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5036:(snd_config_expand) Args evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM bluealsa
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM input
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
starting loop
如果有人对可能是什么问题有任何见解,我将不胜感激。
解决方案
推荐阅读
- android - 如何使用 react-native-tab-view 的
- css - 过渡不适用于 z-index
- c++ - QGraphicsRectItem中如何实现信号和槽?子类化 qobject 和 qgraphicsrectitem 但出现错误
- javascript - 如何以 angular5 中的特定格式将内容导出到 excel?
- ios - 错误:UICollectionView 接收到具有 Swift 中不存在的索引路径的单元格的布局属性
- c# - 穿过墙壁的统一对象
- installation - 如何在 Windows 10 上安装 Monodevelop IDE
- php - 如何仅在 Laravel 中进行管理员验证后保存更新的数据
- latex - LaTeX 中的表格:使用两列模板在单列中对齐表格
- java - 带有文件扩展名的 Java Spring 结束 URL