IOError:[Errno无效输出设备(无默认输出设备)]9996

2024-04-28 23:23:28 发布

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

我复制并粘贴了一些示例代码来使用pyaudio播放wav文件,但是我得到了错误:IOError: [Errno Invalid output device (no default output device)] -9996。在

代码如下:

import pyaudio
import wave
import sys

CHUNK = 1024

if len(sys.argv) < 2:
    print("Plays a wave file.\n\nUsage: %s filename.wav" % sys.argv[0])
    sys.exit(-1)

wf = wave.open(sys.argv[1], 'rb')

p = pyaudio.PyAudio()

stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                channels=wf.getnchannels(),
                rate=wf.getframerate(),
                output=True)

data = wf.readframes(CHUNK)

while data != '':
    stream.write(data)
    data = wf.readframes(CHUNK)

stream.stop_stream()
stream.close()

p.terminate()

为了运行这个程序,我打开终端并输入python playwavexample mywavfile.wav。在

我认为这可能是一个许可问题,所以我试着往里面扔一个sudo,但它什么也没做。我正在运行Ubuntu16.04,音频输出似乎运行良好。。。在


Tags: 代码importformatoutputdatastreamdevicesys
1条回答
网友
1楼 · 发布于 2024-04-28 23:23:28

PyAudio似乎找不到您的默认设备。一种解决方案是将参数output_device_index添加到stream变量的初始化中。在

例如,设备索引为0

stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                channels=wf.getnchannels(), 
                rate=wf.getframerate(), 
                output=True,
                output_device_index=0)

您可以通过以下代码找到PyAudio可访问的所有设备(输入和输出)的设备索引。在

^{pr2}$

相关问题 更多 >