微信公众号添加音频里的音频怎么保存,百度的那个方法就不用说了,之前我用过可以找到文件,改后缀MP3,

79被浏览67868分享邀请回答5515 条评论分享收藏感谢收起202 条评论分享收藏感谢收起查看更多回答微信公众平台里面怎样保存文章里面的视频?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
微信公众平台里面怎样保存文章里面的视频?
1、用浏览器打开你所想要的包含视频的微信文章2、使用鼠标右键【审查元素】功能,也就是查看代码的意思3、将鼠标放到视频区域,然后会看到一段代码,找到该视频的链接4、复制链接到网址栏打开,看是不是你想要的视频5、OK的话,在公众平台管理后台,点击素材管理,进入编辑功能,找到【视频】功能,然后点击【视频网址】,将你复制的腾讯视频链接粘贴进去,最后点击确定即可6、视频不能超过20M,支持大部分主流视频格式,超过20M的视频可至腾讯视频上传后添加。而且目前说明是支持腾讯视频的。
采纳率:80%
来自团队:
好像不好保存,教你个方法,看到视频后然后到腾讯视频搜索你看到的文章标题,基本都可以搜到的。
本回答被网友采纳
公众号里的视频可以提取连接来保存,或者直接保存到本地。
你先要下载一个电脑微信,在电脑微信上点击你的文章,然后点击播放,在点击快进,让他播放完,完之后点击加入我的看单,这样就在腾讯视频里很方便的找到你要的视屏了。推存个百度经验给你希望能帮到你
其他1条回答
为您推荐:
其他类似问题
您可能关注的内容
等待您来回答引言及内容概要
微信公众平台支持向用户回复音乐消息,用户收到音乐消息后,点击即可播放音乐。通过音乐消息,公众账号可以实现音乐搜索(歌曲点播)功能,即用户输入想听的音乐名称,公众账号返回对应的音乐(歌曲)。读者可以关注xiaoqrobot体验该功能,操作指南及使用如下所示。
考虑到歌曲名称有重复的情况,用户还可以同时指定歌曲名称、演唱者搜索歌曲。下面就为读者详细介绍歌曲点播功能的实现过程。
音乐消息说明
在中提到,向用户回复音乐消息需要构造如下格式的XML数据。
&ToUserName&&![CDATA[toUser]]&&/ToUserName&
&FromUserName&&![CDATA[fromUser]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[music]]&&/MsgType&
&Title&&![CDATA[TITLE]]&&/Title&
&Description&&![CDATA[DESCRIPTION]]&&/Description&
&MusicUrl&&![CDATA[MUSIC_Url]]&&/MusicUrl&
&HQMusicUrl&&![CDATA[HQ_MUSIC_Url]]&&/HQMusicUrl&
&ThumbMediaId&&![CDATA[media_id]]&&/ThumbMediaId&
&/xml&上面XML中,需要注意的是&Music&节点中的参数,说明如下:
1)参数Title:标题,本例中可以设置为歌曲名称;
2)参数Description:描述,本例中可以设置为歌曲的演唱者;
3)参数MusicUrl:普通品质的音乐链接;
4)参数HQMusicUrl:高品质的音乐链接,在WIFI环境下会优先使用该链接播放音乐;
5)参数ThumbMediaId:缩略图的媒体ID,通过上传多媒体文件获得;它指向的是一张图片,最终会作为音乐消息左侧绿色方形区域的背景图片。
上述5个参数中,最为重要的是MusicUrl和HQMusicUrl,这也是本文的重点,如何根据歌曲名称获得歌曲的链接。如果读者只能得到歌曲的一个链接,可以将MusicUrl和HQMusicUrl设置成一样的。至于ThumbMediaId参数,必须是通过微信认证的服务号才能得到,普通的服务号与订阅号可以忽略该参数,也就是说,在回复给微信服务器的XML中可以不包含ThumbMediaId参数。
百度音乐搜索API介绍
上面提到,给用户回复音乐消息最关键在于如何根据歌曲名称获得歌曲的链接,我们必须找一个现成的音乐搜索API,除非读者自己有音乐服务器,或者只向用户回复固定的几首音乐。百度有一个非公开的音乐搜索API,之所以说非公开,是因为笔者没有在百度官网的任何地方看到有关该API的介绍,但这并不影响读者对本例的学习,我们仍然可以调用它。百度音乐搜索API的请求地址如下:
http://box./x?op=12&count=1&title=TITLE$$AUTHOR$$$$
http://box.为百度音乐盒的首页地址,上面的链接中不用管参数op和count,重点关注TITLE和AUTHOR,TITLE表示歌曲名称,AUTHOR表示演唱者,AUTHOR可以为空,参数TITLE和AUTHOR需要进行URL编码(UTF-8或GB2312均可)。例如,要搜索歌曲零点乐队的“相信自己”,可以像下面这样:
// GB2312编码的音乐搜索链接
http://box./x?op=12&count=1&title=%CF%E0%D0%C5%D7%D4%BC%BA$$%C1%E3%B5%E3%C0%D6%B6%D3$$$$
// UTF-8编码的音乐搜索链接
http://box./x?op=12&count=1&title=%E7%9B%B8%E4%BF%A1%E8%87%AA%E5%B7%B1$$%E9%9B%B6%E7%82%B9%E4%B9%90%E9%98%9F$$$$通过浏览器访问上面的地址,返回的是如下格式的XML数据:
&count&1&/count&
&![CDATA[/data2/music//ZWZla2xra2pfn6NndK6ap5WXcJVob5puZ2trbWprmnBjZ2xolpeZa2drZmWZmZmdl2hjZWhvnWlpYmRtZmltcGplZFqin5t1YWBobW5qcGxia2NmZ2twbzE$]]&
&![CDATA[.mp3?xcode=a39c94aab36931dcbef368931&mid=0.97]]&
&type&8&/type&
&lrcid&64644&/lrcid&
&flag&1&/flag&
&![CDATA[/data2/music//ZWZla2xramhfn6NndK6ap5WXcJVob5puZ2trbWprmnBjZ2xolpeZa2drZmWZmZmdl2hjaGhvnZ5qlGRpbpedamJla1qin5t1YWBobW5qcGxia2NmZ2twbzE$]]&
&![CDATA[.mp3?xcode=a39c94aab36931dcbef6af2138&mid=0.97]]&
&type&8&/type&
&lrcid&64644&/lrcid&
&flag&1&/flag&
&hash&022bc0fbf66cd19bea96db00393f&/hash&
&![CDATA[ ]]&
&type&mp3&/type&
&size&5236902&/size&
&bitrate&192&/bitrate&
返回结果中的主要参数说明如下:
1)&count& 表示搜索到的音乐数;
2)&url&中包含了普通品质的音乐链接,&durl&中包含了高品质音乐的链接;
3)&encode&中包含了加密后的音乐链接,实际上只是对音乐名称进行了加密,&decode&中包含了解密后的音乐名称。因此,要获取音乐的链接就需要重点分析&encode&和&decode&中的内容,下面会专门为读者进行介绍。
4)&type&表示音乐文件的类型,如rm、wma、mp3等;
5)&lrcid&是歌词的ID,&url&中的歌词ID为64644,那么如何得到歌词呢?本例并不关心歌词,只是附带提一下。歌词的地址如下:
http://box./bdlrc/646/64644.lrc其中,http://box./bdlrc/是固定值;646为歌词所在目录名,计算方法为歌词ID(64644)除以100,取整数部分;64644.lrc是歌词文件名。
下面来看如何从&encode&和&decode&中得到音乐链接。为了便于说明,笔者将上面搜索结果中的&url&和&durl&部分抽取出来,并进行了标注,如下图所示。
上图中,1和2拼接起来是普通品质音乐的链接,3和4拼接起来是高品质音乐的链接。也就是说,普通品质和高品质的音乐链接如下:
// 普通品质音乐链接
/data2/music/77542.mp3?xcode=a39c94aab36931dcbef368931
// 高品质音乐链接
/data2/music/77530.mp3?xcode=a39c94aab36931dcbef6af2138参数xcode可以理解为随机验证码,每次搜索得到的值都不一样,如果不带该参数会报未授权异常“401 Authorization Required”。需要注意的是,xcode是有时间限制的,超过限制再访问链接会报异常:{&Error&:{&code&:&2&,&Message&:&object not exists&,&LogId&:&&}}。在xcode有效的前提下,通过浏览器访问上面的音乐链接,会提示下载音乐。
编程调用百度音乐搜索API
知道如何从API返回结果中得到音乐链接后,就可以编写程序来实现了。笔者将发送HTTP请求、URL编码、解析XML等操作全部封装在BaiduMusicService类中,该类的代码如下:
import java.io.InputS
import java.io.UnsupportedEncodingE
import java.net.HttpURLC
import java.net.URL;
import java.util.L
import org.dom4j.D
import org.dom4j.E
import org.dom4j.io.SAXR
import org.liufeng.course.message.resp.M
* 百度音乐搜索API操作类
* @author liufeng
public class BaiduMusicService {
* 根据名称和作者搜索音乐
* @param musicTitle 音乐名称
* @param musicAuthor 音乐作者
* @return Music
public static Music searchMusic(String musicTitle, String musicAuthor) {
// 百度音乐搜索地址
String requestUrl = &http://box./x?op=12&count=1&title={TITLE}$${AUTHOR}$$$$&;
// 对音乐名称、作者进URL编码
requestUrl = requestUrl.replace(&{TITLE}&, urlEncodeUTF8(musicTitle));
requestUrl = requestUrl.replace(&{AUTHOR}&, urlEncodeUTF8(musicAuthor));
// 处理名称、作者中间的空格
requestUrl = requestUrl.replaceAll(&\\+&, &%20&);
// 查询并获取返回结果
InputStream inputStream = httpRequest(requestUrl);
// 从返回结果中解析出Music
Music music = parseMusic(inputStream);
// 如果music不为null,设置标题和描述
if (null != music) {
music.setTitle(musicTitle);
// 如果作者不为&&,将描述设置为作者
if (!&&.equals(musicAuthor))
music.setDescription(musicAuthor);
music.setDescription(&来自百度音乐&);
* UTF-8编码
* @param source
private static String urlEncodeUTF8(String source) {
String result =
result = java.net.URLEncoder.encode(source, &UTF-8&);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
* 发送http请求取得返回的输入流
* @param requestUrl 请求地址
* @return InputStream
private static InputStream httpRequest(String requestUrl) {
InputStream inputStream =
URL url = new URL(requestUrl);
HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();
httpUrlConn.setDoInput(true);
httpUrlConn.setRequestMethod(&GET&);
httpUrlConn.connect();
// 获得返回的输入流
inputStream = httpUrlConn.getInputStream();
} catch (Exception e) {
e.printStackTrace();
return inputS
* 解析音乐参数
* @param inputStream 百度音乐搜索API返回的输入流
* @return Music
@SuppressWarnings(&unchecked&)
private static Music parseMusic(InputStream inputStream) {
Music music =
// 使用dom4j解析xml字符串
SAXReader reader = new SAXReader();
Document document = reader.read(inputStream);
// 得到xml根元素
Element root = document.getRootElement();
// count表示搜索到的歌曲数
String count = root.element(&count&).getText();
// 当搜索到的歌曲数大于0时
if (!&0&.equals(count)) {
// 普通品质
List&Element& urlList = root.elements(&url&);
List&Element& durlList = root.elements(&durl&);
// 普通品质的encode、decode
String urlEncode = urlList.get(0).element(&encode&).getText();
String urlDecode = urlList.get(0).element(&decode&).getText();
// 普通品质音乐的URL
String url = urlEncode.substring(0, urlEncode.lastIndexOf(&/&) + 1) + urlD
if (-1 != urlDecode.lastIndexOf(&&&))
url = urlEncode.substring(0, urlEncode.lastIndexOf(&/&) + 1) + urlDecode.substring(0, urlDecode.lastIndexOf(&&&));
// 默认情况下,高音质音乐的URL 等于 普通品质音乐的URL
String durl =
// 判断高品质节点是否存在
Element durlElement = durlList.get(0).element(&encode&);
if (null != durlElement) {
// 高品质的encode、decode
String durlEncode = durlList.get(0).element(&encode&).getText();
String durlDecode = durlList.get(0).element(&decode&).getText();
// 高品质音乐的URL
durl = durlEncode.substring(0, durlEncode.lastIndexOf(&/&) + 1) + durlD
if (-1 != durlDecode.lastIndexOf(&&&))
durl = durlEncode.substring(0, durlEncode.lastIndexOf(&/&) + 1) + durlDecode.substring(0, durlDecode.lastIndexOf(&&&));
music = new Music();
// 设置普通品质音乐链接
music.setMusicUrl(url);
// 设置高品质音乐链接
music.setHQMusicUrl(durl);
} catch (Exception e) {
e.printStackTrace();
// 测试方法
public static void main(String[] args) {
Music music = searchMusic(&相信自己&, &零点乐队&);
System.out.println(&音乐名称:& + music.getTitle());
System.out.println(&音乐描述:& + music.getDescription());
System.out.println(&普通品质链接:& + music.getMusicUrl());
System.out.println(&高品质链接:& + music.getHQMusicUrl());
下面对代码进行简单的说明:
1)代码中的Music类是对音乐消息的封装(不包括ThumbMediaId参数),读者可以在中找到该类的定义;
2)运行上述代码需要引入dom4j的JAR包,笔者使用的是dom4j-1.6.1.jar;
3)searchMusic()方法是提供给外部调用的,在CoreService类中会调用该方法获得音乐消息需要的Music相关的4个参数(Title、Description、MusicUrl和HQMusicUrl);
4)parseMusic()方法用于解析XML,读者可以结合代码中的注释和之前对XML的分析进行理解,这里就不再赘述了。
5)116行、127行中的get(0)表示返回多条音乐结果时默认取第一条。
公众账号后台的实现
在公众账号后台的CoreService类中,需要对用户发送的文本消息进行判断,如果是以“歌曲”两个字开头,就认为用户是在使用“歌曲点播”功能,此时需要对“歌曲”两个字之后的内容进行判断,如果包含“@”符号,就表示需要按演唱者搜索,否则不指定演唱者。CoreService类的完整代码如下:
package org.liufeng.course.
import java.util.D
import java.util.M
import javax.servlet.http.HttpServletR
import org.liufeng.course.message.resp.M
import org.liufeng.course.message.resp.MusicM
import org.liufeng.course.message.resp.TextM
import org.liufeng.course.util.MessageU
* 核心服务类
* @author liufeng
public class CoreService {
* 处理微信发来的请求
* @param request
public static String processRequest(HttpServletRequest request) {
// 返回给微信服务器的xml消息
String respXml =
// 文本消息内容
String respContent =
// xml请求解析
Map&String, String& requestMap = MessageUtil.parseXml(request);
// 发送方帐号(open_id)
String fromUserName = requestMap.get(&FromUserName&);
// 公众帐号
String toUserName = requestMap.get(&ToUserName&);
// 消息类型
String msgType = requestMap.get(&MsgType&);
// 回复文本消息
TextMessage textMessage = new TextMessage();
textMessage.setToUserName(fromUserName);
textMessage.setFromUserName(toUserName);
textMessage.setCreateTime(new Date().getTime());
textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
// 文本消息
if (MessageUtil.REQ_MESSAGE_TYPE_TEXT.equals(msgType)) {
// 文本消息内容
String content = requestMap.get(&Content&).trim();
// 如果以“歌曲”2个字开头
if (content.startsWith(&歌曲&)) {
// 将歌曲2个字及歌曲后面的+、空格、-等特殊符号去掉
String keyWord = content.replaceAll(&^歌曲[\\+ ~!@#%^-_=]?&, &&);
// 如果歌曲名称为空
if (&&.equals(keyWord)) {
respContent = getUsage();
String[] kwArr = keyWord.split(&@&);
// 歌曲名称
String musicTitle = kwArr[0];
// 演唱者默认为空
String musicAuthor = &&;
if (2 == kwArr.length)
musicAuthor = kwArr[1];
// 搜索音乐
Music music = BaiduMusicService.searchMusic(musicTitle, musicAuthor);
// 未搜索到音乐
if (null == music) {
respContent = &对不起,没有找到你想听的歌曲&& + musicTitle + &&。&;
// 音乐消息
MusicMessage musicMessage = new MusicMessage();
musicMessage.setToUserName(fromUserName);
musicMessage.setFromUserName(toUserName);
musicMessage.setCreateTime(new Date().getTime());
musicMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_MUSIC);
musicMessage.setMusic(music);
respXml = MessageUtil.musicMessageToXml(musicMessage);
// 未搜索到音乐时返回使用指南
if (null == respXml) {
if (null == respContent)
respContent = getUsage();
textMessage.setContent(respContent);
respXml = MessageUtil.textMessageToXml(textMessage);
} catch (Exception e) {
e.printStackTrace();
return respX
* 歌曲点播使用指南
public static String getUsage() {
StringBuffer buffer = new StringBuffer();
buffer.append(&歌曲点播操作指南&).append(&\n\n&);
buffer.append(&回复:歌曲+歌名&).append(&\n&);
buffer.append(&例如:歌曲存在&).append(&\n&);
buffer.append(&或者:歌曲存在@汪峰&).append(&\n\n&);
buffer.append(&回复“?”显示主菜单&);
return buffer.toString();
}上述代码的逻辑比较简单,用户发送“歌曲+名称”或者“歌曲+名称@演唱者”就能搜索歌曲,搜索不到时会提示用户,如果发送其他内容回复歌曲点播功能的用法。
PS:CSDN2013年度博客之星评选活动已经拉开序幕,日开始投票,请为柳峰(用户名:lyq8479)投上您的宝贵一票,谢谢!
投票地址:
转帖请注明本文出自柳峰的博客(),请尊重他人的辛勤劳动成果,谢谢!
本文已收录于以下专栏:
相关文章推荐
1、JavaScript视频教程
链接: /s/1gd57FVH 密码: d9ei
2、JPA视频教程
一个偶然的机会让我接触到了微信公众平台,赶紧加了几个交流群了解下相关情况,突然间发现好像所有的APP开发者都在研究微信公众帐号的开发,而我显得有些落舞了。至于为什么热度会这么高,我想一个数字足以说明这...
引言及内容概要
微信公众平台支持向用户回复音乐消息,用户收到音乐消息后,点击即可播放音乐。通过音乐消息,公众账号可以实现音乐搜索(歌曲点播)功能,即用户输入想听的音乐名称,公众账号返回对应的音乐(歌...
引言及内容概要
微信公众平台支持向用户回复音乐消息,用户收到音乐消息后,点击即可播放音乐。通过音乐消息,公众账号可以实现音乐搜索(歌曲点播)功能,即用户输入想听的音乐名称,公众账号返回对应的音乐...
引言及内容概要
微信公众平台支持向用户回复音乐消息,用户收到音乐消息后,点击即可播放音乐。通过音乐消息,公众账号可以实现音乐搜索(歌曲点播)功能,即用户输入想听的音乐名称,公众账号返回对应的音乐...
此篇文章为转载
引言及内容概要
微信公众平台支持向用户回复音乐消息,用户收到音乐消息后,点击即可播放音乐。通过音乐消息,公众账号可以实现音乐搜索(歌曲点播)功能,即用户输入想听...
本篇文章主要讲解如何在微信公众帐号上实现“历史上的今天”功能。这个例子本身并不复杂,但希望通过对它的学习,读者能够对正则表达式有一个新的认识,能够学会运用现有的网络资源丰富自己的公众账...
本篇文章为大家演示如何在微信公众帐号上实现“智能翻译”,本例中翻译功能是通过调用“百度翻译API”实现的。智能翻译是指用户任意输入想要翻译的内容(单词或句子),系统能自动识别用户采用的语言...
转自:http://blog.csdn.net/lyq8479/article/details/
本篇文章为大家演示如何在微信公众帐号上实现“智能翻译”,本例中翻...
他的最新文章
讲师:李江龙
讲师:司徒正美
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)微信公众号历史语音消息下载,网上的方法我试过,只能是即时和好友聊天或者公众号的即时语音消息才能找到_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
微信公众号历史语音消息下载,网上的方法我试过,只能是即时和好友聊天或者公众号的即时语音消息才能找到
微信公众号历史语音消息下载,网上的方法我试过,只能是即时和好友聊天或者公众号的即时语音消息才能找到并下载(然后大部分还是损坏的amr文件,一百多个里就一个能听),公众号的历史语音消息并不能找到(ps:我把tencent文件下微信的语音voice2里的文件清空...
我有更好的答案
面积2700多平,办营业执照的时候租房协议写180平,对以后办理消防有影响吗?
如果重要 就找专业删除文件找回的公司
或着能人去吧
让他们帮你
如果聊天信息不太重要
建议不要找了
不是聊天信息,是公众号,连了网能在历史消息里翻到,但是我想保存下来
l连网能找到
那就在网上截屏
语音消息……
为您推荐:
其他类似问题
等待您来回答}

我要回帖

更多关于 微信公众号发音频 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信