如何使用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
相关产品推荐
相关产品推荐

