2016-07-19 5 views
0

pyaudio를 사용하여 wav 파일을 재생하기위한 몇 가지 예제 코드를 복사하여 붙여 넣었지만 오류 : IOError: [Errno Invalid output device (no default output device)] -9996가 표시됩니다.IOError : [Errno 잘못된 출력 장치 (기본 출력 장치 없음)] -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를 던지려고했지만 아무 것도하지 않았다. Ubuntu 16.04를 실행 중이며 오디오 출력이 정상적으로 작동하는 것 같습니다 ...

답변

-1

PyAudio에서 기본 장치를 찾을 수없는 것 같습니다. 한 가지 해결책은 변수 output_device_indexstream 변수의 초기화에 추가하는 것입니다. 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 코드를 통해 액세스 기기 (입력 및 출력)을위한 모든 장치 인덱스를 찾을 수있다.

import pyaudio 

p = pyaudio.PyAudio() 
device_count = p.get_device_count() 
for i in range(0, device_count): 
    print("Name: " + p.get_device_info_by_index(i)["name"]) 
    print("Index: " + p.get_device_info_by_index(i)["index"]) 
    print("\n")