小编Pet*_*r V的帖子

预期的Chromecast音频延迟?

我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,因此这不是延迟的来源.

有谁能告诉我

  1. chromecast音频播放短文件的预期延迟是多少
  2. 如果pychromecast在这里效率特别低,如果是,那么可以使用go,python或基于lisp的库的任何建议.
  3. 最小化延迟的其他任何提示?我们已经从wav文件中下转换,认为原始http速度可能是一个问题.

提前致谢!

python audio raspberry-pi chromecast

6
推荐指数
1
解决办法
562
查看次数

python子模块如何在它们之间共享稀缺资源?

我将一个大的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,以及一群需要使用代码的人,还有非常明确的概念性功能组合.

python namespaces python-module

4
推荐指数
1
解决办法
1586
查看次数