You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用winsound实现WAV文件单次播放而非循环播放?

解决winsound播放WAV文件仅一次的问题

嘿,我来帮你搞定这个播放单次的问题!你遇到的情况大概率是因为移除SND_LOOP后,没有指定正确的标志参数,导致PlaySound函数没能正确识别你传入的是WAV文件路径。

正确的单次播放代码

你需要明确加上SND_FILENAME标志,告诉函数你传入的是一个音频文件路径,而不是系统预设的声音:

import winsound
winsound.PlaySound('filename.wav', winsound.SND_FILENAME)

这段代码会同步播放音频——也就是说,代码会等到声音播放完毕后,才会继续执行后面的内容。

如果你想让音频在后台播放(代码继续往下跑,不等待声音结束),可以再加上SND_ASYNC标志,用位或操作符|组合:

import winsound
winsound.PlaySound('filename.wav', winsound.SND_FILENAME | winsound.SND_ASYNC)

额外注意事项

  • 确保你的filename.wav和Python脚本在同一个文件夹里,如果不在,记得用绝对路径,比如:
    # 用原始字符串避免转义问题
    winsound.PlaySound(r'C:\Users\YourName\Desktop\filename.wav', winsound.SND_FILENAME)
    
  • 之前你用SND_LOOP的时候,通常需要搭配SND_ASYNC才会生效(否则会阻塞程序且无法停止),但单次播放不需要这个组合。

内容的提问来源于stack exchange,提问作者user19381648

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 01:47:42