使用streamlit部署在网页上,用pygame.mixer来播放midi音乐总是报错。报错出现在一切和mixer相关的代码上,只要涉及到这个就报错。如下为报错的代码:
```python
Traceback (most recent call last):
File "/home/adminuser/venv/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 535, in _run_script
exec(code, module.__dict__)
File "/mount/src/ceshi/ceshi.py", line 136, in <module>
play_music('Blue Danube - Johann Strauss Jr..mid')
File "/mount/src/ceshi/ceshi.py", line 113, in play_music
pygame.mixer.music.load(file_path)
pygame.error: mixer not initialized
然后网上都说是什么音频设备没插什么的。但是,最大的问题是,在本地开发streamlit的时候这个代码是可以在浏览器正常运行,音乐也是可以正常播放的。但是将其部署到github上,app用streamlit部署后再在浏览器打开这个网站,就没办法播放了。网址是:https://ceshi1.streamlit.app/。在网页最后,点击下载音乐,等待,然后点击播放音乐,就报错了。
然后我的代码中与之相关的代码是:
```python
import pygame
pygame.init()
# pygame.mixer.init()
def play_music(file_path):
pygame.mixer.music.load(file_path)
pygame.mixer.music.play()
备注:如果不注释掉pygame.mixer.init(),报错的就是它;如果注释掉它,报错的就是pygame.mixer.music.load(file_path)或pygame.mixer.music.play()。