繁体   English   中英

当python文件与声音文件位于不同的目录中时,如何播放声音?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM