Closed misaka-20002 closed 1 year ago
第一行是在Url()函数里面执行了std::cout<<url<<std::endl;
第二行空行是在ToJson()里面的std::cout<<url<<std::endl;
然后第三行就报错emptyMessage
问题应该在VoiceMessage.Set(json)里面 删掉里面赋值为空的语句似乎就没问题了
JSON input: {"base64":null,"length":17676662194178179840,"path":null,"type":"Voice","url":null,"voiceId":null}
用
MiraiBot& bot = m.GetMiraiBot(); MessageChain mc; VoiceMessage vc; string url = "http://music.163.com/song/media/outer/url?id=" + commands[1] + ".mp3"; vc.Url(url); mc.Add<VoiceMessage>(vc); bot.SendMessage(m.Sender.Group.GID,mc); return "";
不清楚是我写炸了还是mirai-cpp的bug
调用Voicemessage.Url()之后加到MessageChain里面再发送结果在mah上收到的url是null,length也不为0
MessageChain mc; VoiceMessage vc; string url = "http://music.163.com/song/media/outer/url?id=" + commands[1] + ".mp3"; vc.Url(url); mc.Add<VoiceMessage>(vc); bot.SendMessage(m.Sender.Group.GID,mc);
会弹emptyMessage错误 然后发现在VOiceMessage类里面 调用VoiceMessage.Url(string)的时候是能设定url_的 然而在稍后的ToJson()里面发现url_变为空,造成了emptyMessage