![](/img/trans.png)
[英]How to play any kind of sound in python without using file or directory
[英]How do you play sounds when the python file is in a different directory as the sound file?
所以我正在制作一个基于文本的游戏,完成后,我想将最终产品编译为 .exe 格式,以便共享(我计划使用 cx_freeze)现在,我想添加一些背景音乐游戏,下面的代码工作正常,当且仅当 python 文件在桌面上,“sound.wav”也是如此 我正在寻找在后台执行 sound.wav 的方法,无论它是在相同还是不同的目录作为python文件,谢谢
import winsound
winsound.PlaySound('sound.wav', winsound.SND_FILENAME)
使用os
包生成音乐文件的绝对路径,以确保它始终正常工作。
例如,如果您的项目结构是
root
src
your_python_file.py
assets
sound.wav
因此,您可以通过以下方式生成 sound.wav 的绝对路径
import os
# __file__ means the path of the current python script
root_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
bg_path = os.path.join(root_dir, "assets", "sound.wav")
假设您有一个名为foo
的子文件夹和一个名为subfoo
的第二个子文件夹
如果你想进入foo
子文件夹使用foo/sound.wav
如果你想进入第二个子文件夹subfoo
使用foo/subfoo/sound.wav
。
如果你想翻字典,你可以使用./
。 例如,如果您的声音位于foo
并且您在subfoo
编写脚本,则可以使用./sound.wav
访问它以一个一个文件上升,再次使用./
。
否则,您可以使用从C:
或您希望访问的驱动器开始的“绝对”文件路径。 例如,如果您的文件文件名位于桌面中,您可以使用:
C:/users/username/Desktop/foo/subfoo/sound.wav
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.