{"contents":"# -*- coding: utf-8 -*-#\n# -------------------------------------------------------------------------------\n# Name: MediaMSG.py\n# Description: 负责处理语音数据库\n# Author: xaoyaoo\n# Date: 2024/04/15\n# -------------------------------------------------------------------------------\nfrom .db_base import DatabaseBase\nfrom .utils import silk2audio\n\n\nclass MediaHandler(DatabaseBase):\n _class_name = \"MediaMSG\"\n Media_required_tables = [\"Media\"]\n\n def Media_add_index(self):\n \"\"\"\n 添加索引, 加快查询速度\n \"\"\"\n if self.tables_exist(\"Media\"):\n self.execute(\"CREATE INDEX IF NOT EXISTS MsgSvrID ON Media(Reserved0)\")\n\n def get_audio(self, MsgSvrID, is_play=False, is_wave=False, save_path=None, rate=24000):\n if not self.tables_exist(\"Media\"):\n return False\n\n sql = \"select Buf from Media where Reserved0=? \"\n DBdata = self.execute(sql, (MsgSvrID,))\n if not DBdata:\n return False\n if len(DBdata) == 0:\n return False\n data = DBdata[0][0] # [1:] + b'\\xFF\\xFF'\n try:\n pcm_data = silk2audio(buf_data=data, is_play=is_play, is_wave=is_wave, save_path=save_path, rate=rate)\n return pcm_data\n except Exception as e:\n return False\n","is_binary":false,"path":"wxdump_linux/db/db_media.py","ref":""}