from usr.bin.guard import GuardContext

# 刷新容器
guard_context = GuardContext()
guard_context.refresh()


def func(*args, **kwargs):
    """

    :param args: ('anonymous',) 发送人, 默认是'anonymous'无需关心
    :param kwargs: 格式如下
        {
            'message':{
                'message_id':2,                    # 消息ID
                'sender':'anonymous',              # 发送人
                'message': {                       # 来的消息
                    'play_data': 'tts',            # 播放音频或者tts消息
                    'breakin': 0,                  # 是否允许被打断
                    'mode': 2,                     # 只有tts存在字段, audio不存在此字段, 模式
                    'priority': 4                  # 优先级4>3>2>1>0
                },
                'from_event':'MEDIA',              # 从那个事件或服务来的
                'msg_type':1                       # 消息类型, 1是来自tts的消息, 0是来自audio的消息
            }
        }
    :return:
    """
    print(kwargs['message'])


# 获取媒体服务
media_ser = guard_context.get_server("media")
# 订阅媒体服务
media_ser.subscribe(func)
# 设置模式
media_ser.set_mode(0)
# 设置是否自动播报, 默认是True, 如果为False, 采用订阅手动播报, 一旦设置, audio_play和tts_play将不再生效, 用户可以从订阅消息通拿到并自动播报
media_ser.enable = True
# publish消息
media_ser.audio_play(play_data="usr/a.mp3")
media_ser.tts_play(play_data="这是一条tts消息")
