簡體   English   中英

Python winsound,ASYNC 標志不起作用?

[英]Python winsound, ASYNC flag not working?

我正在使用 python 3.5,我正在嘗試播放聲音,同時立即繼續我的腳本; according to https://docs.python.org/3.5/library/winsound.html the flag "winsound.SND_ASYNC" should be the way to go. 但是以下不會產生任何聲音:

import winsound
winsound.PlaySound('C:/Users/Bob/Sounds/sound.wav', winsound.SND_ASYNC)

如果我將標志更改為“winsound.SND_FILENAME 播放聲音:

import winsound
winsound.PlaySound('C:/Users/Bob/Sounds/sound.wav', winsound.SND_FILENAME)

任何想法為什么異步標志不起作用?

根據文檔

sound參數可以是文件名,作為字符串的音頻數據或“無”。 其解釋取決於標志的值,標志的值可以是下面描述的常數的按位“或”組合

如下所示:

import winsound
winsound.PlaySound('C:/Users/Bob/Sounds/sound.wav', winsound.SND_FILENAME | winsound.SND_ASYNC)

以防萬一有人會用谷歌搜索這個,特別是winsound.SND_ASYNC標志不能與winsound.SND_FILENAME | winsound.SND_ASYNC結合使用。 winsound.SND_FILENAME | winsound.SND_ASYNC以及沒有它的一切工作,只是為了winsound.SND_FILENAME - 有時問題是,在腳本末尾調用 winsound 時,它不會使用 async 標志播放,導致腳本已經停止,所以它會停止其他任何事情帶有異步標志。 看一下這個:

import winsound
import time


def wavsound(asynced=True):
    flags = winsound.SND_FILENAME | winsound.SND_ASYNC if asynced else winsound.SND_FILENAME
    winsound.PlaySound(r"path_to_your_wav_file", flags)


# it would or would not play at the end of your python script if:
wavsound(asynced=True)  # play if this line uncommented and wavsound(asynced=False) commented
# wavsound(asynced=False) # not play if this line uncommented and wavsound(asynced=True) commented

# time.sleep(2) # if uncomment this - play first 2 seconds and then cutoff with asynced=True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM