diff --git a/wechat_ipad/client/message.py b/wechat_ipad/client/message.py index 3f8984a..66e8475 100644 --- a/wechat_ipad/client/message.py +++ b/wechat_ipad/client/message.py @@ -237,7 +237,15 @@ class MessageMixin(WechatAPIClientBase): media_info = MediaInfo.parse(video_path) else: raise ValueError("video should be str, bytes, or path") - duration = media_info.tracks[0].duration + # 获取视频时长 + duration = None + for track in media_info.tracks: + if track.track_type == "Video" and track.duration is not None: + duration = track.duration / 1000 # 将毫秒转换为秒 + break + if duration is None: + duration = 1 + self.logging.error(f"无法从视频文件获取时长: {video}") # get image base64 if isinstance(image, str): @@ -256,7 +264,7 @@ class MessageMixin(WechatAPIClientBase): self.logging.info("开始发送视频: 对方wxid:{} 视频base64略 图片base64略 预计耗时:{}秒", wxid, predict_time) async with aiohttp.ClientSession() as session: - json_param = {"Wxid": self.wxid, "ToWxid": wxid, "Base64": "data:video/mp4;base64,"+vid_base64, + json_param = {"Wxid": self.wxid, "ToWxid": wxid, "Base64": "data:video/mp4;base64," + vid_base64, "ImageBase64": "data:image/jpeg;base64," + image_base64, "PlayLength": duration} # self.logging.debug(f"json_param::{json_param}")