异步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第三方库


热门话题
使用jaxrpc的Java eclipse WebService客户端   java编程方式在对象上写入名称   java Spring批处理:重试后跳过   java Android错误:错误:任务执行失败:应用程序:transformClassesWithDexForDebug'   带有清单文件nullPointerException的java Android元数据   spring Java Quartz调度作业停止运行   JavaMockito:如何在不调用实际方法的情况下,模拟带有参数和无效返回类型的静态方法?   java Tomcat连接池问题无法在关闭的连接上调用方法   java如何交换列表中的项目?   java如何停止线程并通过Toast在线程中正确显示文本?   java为什么连续写入OutputStream时偏移量0不会导致重复字节?   java我无法生成头文件   不兼容的返回类型错误java   修改值后键值对的java Jolt转换规范   java有自动更新Javadoc的工具吗?   java线程如何在ints自身实例类中共享变量   java继承一个非gwt模块   java Hibernate xml配置   使用netty4异步调用的java链接HTTP请求响应