使用QSoundEffect播放音效时MacOS无声音、Windows正常的问题求助
QSoundEffect播放音效时MacOS无声音、Windows正常的问题求助
大家好,我遇到了一个跨平台音效播放的棘手问题,想请各位帮忙排查下:
我用QSoundEffect实现点击音效,代码是这样写的:
self.sound_effect = QSoundEffect() self.sound_effect.setSource(QUrl.fromLocalFile(self.resource_path("click.wav")))
其中resource_path方法是用来适配PyInstaller打包后资源路径的工具方法:
def resource_path(self, relative_path): try: base_path = sys._MEIPASS except AttributeError: base_path = os.path.dirname(__file__) return os.path.join(base_path, relative_path)
现在的问题很奇怪:
- Windows系统下不管是直接用Python解释器跑代码,还是打包成exe后运行,音效都能正常播放
- 但MacOS上,不管是直接跑源码还是打包后,都听不到任何声音
- 更诡异的是,如果我把
click.wav的绝对路径直接硬编码到setSource里,MacOS上就能正常播放了,但这样做的话,PyInstaller打包后的程序在其他机器上就没法用了,毕竟绝对路径是不通用的
我试过好几个其他的音效库,但只有QSoundEffect能满足我的需求,所以实在不想换库,想问问有没有办法解决MacOS上这个路径识别的问题呢?
备注:内容来源于stack exchange,提问作者Brian McGill
相关产品推荐
相关产品推荐

