スレッド上でサウンドデバイスを再生するにはいくつかの問題があります。私は最初にsdとしてサウンドデバイスをインポートします。次に、実行中に、ASIOサウンドカードを使ってスレッド上で音を出したい。スレッド上で行う必要があるすべての設定がうまく機能します。しかし、私は次のエラーを得たトーン再生したいとき:スレッド上のPython Sounddevice.play()スレッド
sounddevice.PortAudioError:エラー開口部のOutputStream:予期せぬホストAPI 2エラー0:ASIOドライバをロードするためにu'Failed」
をもし私が私が必要とするたびにスレッドでインポートを初期化してください。もちろん、私はそれをしたくありません。すべてのアイデアはそれを解決するために暑いですか?
ありがとうございます!ここで
簡単なコード例:
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