不幸的是,pyinstaller的声音设备模块存在问题。
我编写了下面的代码,但是当我使用pyinstaller创建一个EXE文件时,dist文件夹中的EXE文件不起作用。使用pyinstaller的制作过程成功完成,但EXE文件不起作用。
代码是:
import sounddevice as sd
fs=44100
duration =2 # seconds
print('Start')
myrecording = sd.rec(duration * fs, samplerate=fs, channels=2,dtype='float64')
sd.wait()
print('play')
sd.play(myrecording, fs)
print('end')
答案 0 :(得分:0)
问题可能是您执行sd.play()
后程序是否已退出?
尝试用sd.play(myrecording, fs, blocking=True)
另外,sounddevice不是一个完美的库,所以你需要做一些额外的调整才能使它工作:
在您的EXE所在的目录中,添加一个名为_sounddevice_data
的目录,并将this file放入该文件夹(如果您使用的是Python 64位)或this一个(如果你正在使用Python 32位)。
尝试运行EXE,它应该可以工作!
希望这有帮助!
答案 1 :(得分:0)
所选答案没有用,但有所帮助。
对我来说,可行的解决方案是在.exe文件所在的位置添加 _sounddevice_data 文件夹,然后在其中创建一个 portaudio-binaries 文件夹,最后将最新创建的文件夹中的libportaudio64bit.dll 。
希望有帮助!