在windows 使用 playsound 播放音樂時,雖然已經降版到 1.2.2, 直接使用 source run 已經不會出錯,但打包成 exe 檔後,執行在部份的 windows 平台上會出錯!錯誤訊息:
The specified device is not open or is not recognized by MCI.
有可能是打包好的程式, 執行中的目錄(current woking directory)會在神奇的位置去執行。
解法,先判斷是否為執行檔:
basis = "" if hasattr(sys, 'frozen'): basis = sys.executable else: basis = sys.argv[0]
再使用 os.path.join() 組合成完整的路徑,
先用platform 檢查,如果 Windows 平台,如果又是播放 wav 格式,遇到錯誤是,可以試看看切換到其他的套件來播放音效:
- simpleaudio:播放WAV文件和NumPy數組。
- winsound:播放WAV文件或鳴響您的系統揚聲器
https://docs.python.org/3/library/winsound.html