我10岁时正在实施一个项目,该项目要求在按下物理按钮后通过Chromecast音频播放音频.
她正在使用python和pychromecast连接到chromecast音频.
音频文件是50k mp3文件,并在运行按钮工具的同一覆盆子pi上通过wifi托管.它们使用nginx托管.
将pychromecast中的play_media函数触发到chromecast中的音频延迟有时超过3秒,并且从不低于1.5秒.有趣的是,这似乎要比使用spotify或pandora进行投射慢得多.并且,按下按钮"有趣"肯定太慢了.
文件访问时间在pi上很重要,但是使用md5sum之类的东西读取整个文件的时间不到0.02秒,因此我们不处理文件系统延迟.
来自pi的mp3文件的平均文件下载时间是wifi上的80-100ms,因此这不是延迟的来源.
有谁能告诉我
提前致谢!
我将一个大的monolothic python文件分成六个独立的子模块.
最初在onebigfile.py中,我有
conn = MySqldb.connect()
c = conn.cursor()
Run Code Online (Sandbox Code Playgroud)
然后一个函数将使用它:
def getFromDB():
c.execute(sql)
Run Code Online (Sandbox Code Playgroud)
现在,我已将模块重组为
NewModule/
__init__.py
users.py
accounts.py
sixmoreofthese.py
Run Code Online (Sandbox Code Playgroud)
令我困惑的是如何处理像我的MySQL连接这样的半稀缺资源.
有没有办法访问父命名空间,例如conn.,c.可以放入__init__.py?我不想实例化MySQL的一大堆连接.只是将它们转储到那里并调用它们就像它们是全局命名空间的一部分一样不起作用..那就是:
__init__.py:
conn = MySqldb.connect()
c = conn.cursor()
> import NewModule
> NewModule.users.login('a','b')
--- login function calls the Mysql c. from the global namespace and can't find it.
Run Code Online (Sandbox Code Playgroud)
预测一个建议:拆分这些文件是有意义的 - 大约有50-75k的python,以及一群需要使用代码的人,还有非常明确的概念性功能组合.