스레드에서 사운드 장치를 재생할 때 몇 가지 문제가 있습니다. 처음에는 sd로 사운드 장치를 가져옵니다. 그런 다음 실행 중에 ASIO 사운드 카드를 사용하여 스레드에서 소리를 내고 싶습니다. 스레드에서 수행해야하는 모든 구성이 잘 작동합니다. 나는 음색을 연주 할 때, 나는 다음과 같은 오류가 발생했습니다 :Python Sounddevice.play() on Threads
sounddevice.PortAudioError : 오류 개방의 OutputStream : 2 오류 0 예상치 못한 호스트 API : 경우 ASIO 드라이버 '
를로드 할 수 u'Failed I 스레드가 필요할 때마다 가져 오기를 초기화하면됩니다. 하지만 물론 그렇게하고 싶지는 않습니다. 어떤 아이디어를 해결하기 위해 뜨거운?
감사합니다. 다음은 간단한 코드 예제
는 :from threading import Thread
import numpy as np
import sounddevice as sd
class Test(Thread):
def __init__(self):
Thread.__init__(self)
#-- Configuration of the Tone to be played
self.fs = 44100 # sampling rate, in Hz, 44100 or 48000
duration = 1.05 # in seconds, may be float
f = 200.0 # sine frequency, Hz, may be float
self.tone_data = (np.sin(2*np.pi*np.arange(self.fs*duration)*f/self.fs)).astype(np.float32)
def run(self):
#-- Configuration of the ASIO sound card
#import sounddevice as sd
sd.default.channels = 2
sd.default.device = 14
print sd.query_devices(sd.default.device)['name']
#sd.default.latency = ('low','low')
#asio_out = sd.AsioSettings(channel_selectors=[1, 2])
#sd.default.extra_settings = asio_out
sd.default.samplerate = self.fs
sd.play(self.tone_data)
sd.wait()
w = Test()
w.start()
[MCVE] (http://stackoverflow.com/help/mcve)를 제공해주십시오. – Matthias
@Matthias 내가 추가하고 예제 코드 – Laura
그냥 호기심에서, 여러 스레드를 사용하여 귀하의 유스 케이스 무엇입니까? – Matthias