异步MPD客户端库

ampd的Python项目详细描述


使用python asyncio与音乐播放器后台程序服务器进行异步通信。

连接由客户端对象建立。 请求(mpd命令)在异步协同路由中执行,这里称为“任务”。 请求由执行器对象生成。 每个客户机都有一个根执行器,可以构造子执行器(用于对相关任务进行分组)。

任务

ampd任务本质上是一个异步协程。 @taskdecorator通过asyncio使协程立即执行。确保未来。 此外,它还将其包装起来,因此取消和断开连接的例外情况被视为正常终止:

@task
async def task_example():
    ...
    reply = await executor.request1(a, b)
    ...
    reply = await executor.request2()
    ...

请求可以是:

  1. mpd命令[1](而不是idlenoidle)。 当服务器的回复到达时返回:

    await executor.play(5)
    reply = await executor.status()
    
  2. 空闲请求:

    reply = await executor.idle(event_mask, timeout=None)
    

    这模拟了mpd的idle命令,并进行了一些改进。 超时以秒为单位。 可能的事件标志是:

    • Event.*SUBSYSTEM*(大写)或ANY以匹配任何子系统。
    • Event.CONNECT-客户端已连接到服务器。
    • Event.IDLE-客户端空闲。

    返回实际发生的事件的掩码,如果发生超时,则返回Event.TIMEOUT

  3. 命令列表:executor.command_list(iterable)

[1]For MPD commands and subsystems see http://www.musicpd.org/doc/protocol/command_reference.html

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java播放流媒体音乐   LWJGL中的java纹理未显示   java从父集合中删除时删除子对象   mysql希望在我的代码中添加验证,如果表不存在,它应该用java创建新表   java我可以关闭客户端的socket而不引起服务器端的EOFEException吗?   java Primefaces对话框框架咆哮和showMessageInDialog不工作   hadoop配置单元无法初始化类java。网网络接口   关键字中缺少oracle11g Java iBatis   java在RESTAPI中创建PUT和POST端点,而不创建GET端点?   java Math abs和ceil输出编译错误   java Tomcat 8.017代md5及其摘要。球棒   java SpringBean配置xml文件在IteliJ Idea中加载   java为什么在使用Powershell指定Xms和Xmx时,它们什么都不做,但通过Netbeans IDE可以正常工作?   java Drools项目构建失败,kjar打包从7.7版开始