1 使用软件(格式工厂)准备视频材料
微信官方要求:视频(video)大小不超过10MB,并且视频为MP4格式
以网易云MV为例,来说明使用步骤
源视频的大小:
打开 格式工厂
到现在为止,视频素材准备完毕
2 java代码部分
- 上传视频资源,获取微信服务器返回的video_mdeia_id
@Test
public void testVideoThumbMediaId() throws Exception{
String path = "D:/wxSource/Despacito.mp4";
String mediaId = weiXinUtil.upload(path, weiXinUtil.getAccessToken().getAccess_token(), "video");
System.out.println("上传video后的video_media_id:"+mediaId);
}
- 创建Video对象
public class Video {
private String MediaId;
private String Title;
private String Description;
public String getMediaId() {
return MediaId;
}
public void setMediaId(String mediaId) {
MediaId = mediaId;
}
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
public String getDescription() {
return Description;
}
public void setDescription(String description) {
Description = description;
}
}
- 创建videoMessage 对象
public class videoMessage extends baseMessage {
private Video Video;
public Video getVideo() {
return Video;
}
public void setVideo(Video Video) {
this.Video = Video;
}
}
- videoMessageToXml方法拼装xml格式
public static String videoMessageToXml(videoMessage videoMessage){
XStream stream = new XStream();//System.out.println(stream.toXML(text));//全类名<zk.entity.textMessage>
stream.alias("xml",videoMessage.getClass());//首尾全类名改成<xml>
return stream.toXML(videoMessage);
}
- sendVideoMessage方法返回xml格式数据
public static String sendVideoMessage(String toUserName,String fromUserName) throws Exception{
String message = null;
String video_mdeia_id ="uUmTa3ne1a8-5tayANf_gO5weB3pEa_UTRMFZxYQIMbMjYHESQEUlwsw696yUSiK";//检测是否在有效期内
Video video = new Video();
video.setMediaId(video_mdeia_id);
video.setTitle("Despacito");
video.setDescription("2017神曲");
videoMessage videoMessage = new videoMessage();
videoMessage.setToUserName(fromUserName);
videoMessage.setFromUserName(toUserName);
videoMessage.setCreateTime(new Date().getTime());
videoMessage.setMsgType(userResp_message_type_video);
videoMessage.setVideo(video);
message = videoMessageToXml(videoMessage);
System.out.println(message);
return message;
}
- 如果用户输入D,就返回此视频
if ("D".equals(map.get("Content").toUpperCase())) {
reponseMessage = messageUtil.sendVideoMessage(toUserName, fromUserName);
}