Python中playsound模块加载设备驱动未知错误求助
解决playsound播放WAV文件时的Error 266设备驱动问题
我明白你在用playsound做简易娱乐程序时卡壳了——调用playsound("scan.wav")弹出了Error 266,提示设备驱动加载出问题。先理下你的现状:
- 代码逻辑简单直接,文件都在
D:\Programi\python\lab目录下(包含lab.py、scan.mp3和scan.wav) - 报错核心是
Unknown problem while loading the specified device driver
下面给你几个可尝试的解决方向,从易到难来:
1. 先检查音频设备状态
- 右键任务栏的音量图标,打开声音设置,确认默认播放设备没有被禁用,且能正常发声(比如播放系统提示音试试)
- 可以临时切换默认音频设备(比如从扬声器切到耳机,或者反过来),再重新运行程序测试
2. 用绝对路径替代相对路径
有时候相对路径会因为Python工作目录的问题导致识别异常,换成绝对路径更稳妥:
from playsound import playsound import os # 获取当前脚本所在的绝对目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接WAV文件的完整路径 sound_path = os.path.join(script_dir, "scan.wav") print("please wait") playsound(sound_path)
3. 更新或重装音频驱动
既然报错指向设备驱动,那大概率是驱动损坏或版本过旧:
- 打开设备管理器,找到声音、视频和游戏控制器,右键你的音频设备,选择更新驱动程序,让系统自动搜索更新
- 如果更新没用,就卸载驱动后重启电脑,系统会自动重新安装适配的驱动
4. 换用更稳定的音频播放库
如果playsound的问题一直绕不开,可以试试其他成熟的库,比如pygame或simpleaudio:
pygame示例代码:
import pygame import os script_dir = os.path.dirname(os.path.abspath(__file__)) sound_path = os.path.join(script_dir, "scan.wav") pygame.mixer.init() pygame.mixer.music.load(sound_path) print("please wait") pygame.mixer.music.play() # 等待音频播放完成 while pygame.mixer.music.get_busy(): pygame.time.Clock().tick(10)
simpleaudio示例代码:
import simpleaudio as sa import os script_dir = os.path.dirname(os.path.abspath(__file__)) sound_path = os.path.join(script_dir, "scan.wav") wave_obj = sa.WaveObject.from_wave_file(sound_path) print("please wait") play_obj = wave_obj.play() play_obj.wait_done()
建议先从检查音频设备和更换绝对路径开始试,这两个操作简单,大概率能解决你的问题。
内容的提问来源于stack exchange,提问作者ONT Studios
相关产品推荐
相关产品推荐

