导航:首页 > 编程语言 > php发送语音消息

php发送语音消息

发布时间:2022-05-28 03:03:25

⑴ 基于php如何顺畅地实现语音通话

基于计算机编程语言php实现语音通话有很多方式,比如通过java、C++等进行开发,但花费的时间成本一般比较大,如果是我,我会选择第三方,市面上比较有实力的是声网、ZEGO即构科技等

⑵ php可以做app语音聊天服务端么

可以做的,试试PHP的swoole扩展,效率很高

⑶ php 微信开发怎么回复用户语音消息

这个是 发送消息 的 回复语音消息 。上传一个音频文件后 就会 获取一个 id (怎么上传文件请在本网站内搜索 微信 就会有) 然后对这个音乐也是有 要求的建议是 mp3 的格式 因为比较常用 而且 音乐的长度不能多60秒 也就是要在 60秒内。然后强调一下 。 这个只能播放 临时素材内的音乐 。 永久素材是不能办法的大伙要记住
php 微信开发之 发送消息 回复语音消息 代码

<?php
public function responseMsg(){
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!empty($postStr)){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = $postObj->Content;
if($keyword){
echo '<xml>
<ToUserName><![CDATA['.$fromUsername.']]></ToUserName>
<FromUserName><![CDATA['.$toUsername.']]></FromUserName>
<CreateTime>'.time().'</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<Voice>
<MediaId><![CDATA[Lw_t_ejZNPyJOBGszH9RFSyit_UrThhUhnjOxLYNueAEP_8N98qfSLOrwZAb9c2B]]></MediaId>
</Voice>
</xml>';
}
}
}
?>

⑷ 微信公众平台如何通过php代码给会员发送被动响应消息

明确在哪接收消息

从微信公众平台接口消息指南中可以了解到,当用户向公众帐号发消息时,微信服务器会将消息通过POST方式提交给我们在接口配置信息中填写的URL,而我们就需要在URL所指向的请求处理类CoreServlet的doPost方法中接收消息、处理消息和响应消息。

接收、处理、响应消息

下面先来看我已经写好的CoreServlet的完整代码:

package org.liufeng.course.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.liufeng.course.service.CoreService;
import org.liufeng.course.util.SignUtil;

/**
* 核心请求处理类
*
* @author liufeng
* @date 2013-05-18
*/
public class CoreServlet extends HttpServlet {
private static final long serialVersionUID = 4440739483644821986L;

/**
* 确认请求来自微信服务器
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 微信加密签名
String signature = request.getParameter("signature");
// 时间戳
String timestamp = request.getParameter("timestamp");
// 随机数
String nonce = request.getParameter("nonce");
// 随机字符串
String echostr = request.getParameter("echostr");

PrintWriter out = response.getWriter();
// 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败
if (SignUtil.checkSignature(signature, timestamp, nonce)) {
out.print(echostr);
}
out.close();
out = null;
}

/**
* 处理微信服务器发来的消息
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 将请求、响应的编码均设置为UTF-8(防止中文乱码)
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");

// 调用核心业务类接收消息、处理消息
String respMessage = CoreService.processRequest(request);

// 响应消息
PrintWriter out = response.getWriter();
out.print(respMessage);
out.close();
}

}

代码说明:

1)第51行代码:微信服务器POST消息时用的是UTF-8编码,在接收时也要用同样的编码,否则中文会乱码;

2)第52行代码:在响应消息(回复消息给用户)时,也将编码方式设置为UTF-8,原理同上;

3)第54行代码:调用CoreService类的processRequest方法接收、处理消息,并得到处理结果;

4)第57~59行:调用response.getWriter().write()方法将消息的处理结果返回给用户

从doPost方法的实现可以看到,它是通过调用CoreService类的processRequest方法接收、处理消息的,这样做的目的是为了解耦,即业务相关的操作都不在Servlet里处理,而是完全交由业务核心类CoreService去做。下面来看CoreService类的代码实现:

package org.liufeng.course.service;

import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.liufeng.course.message.resp.TextMessage;
import org.liufeng.course.util.MessageUtil;

/**
* 核心服务类
*
* @author liufeng
* @date 2013-05-20
*/
public class CoreService {
/**
* 处理微信发来的请求
*
* @param request
* @return
*/
public static String processRequest(HttpServletRequest request) {
String respMessage = null;
try {
// 默认返回的文本消息内容
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);
textMessage.setFuncFlag(0);

// 文本消息
if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) {
respContent = "您发送的是文本消息!";
}
// 图片消息
else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_IMAGE)) {
respContent = "您发送的是图片消息!";
}
// 地理位置消息
else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_LOCATION)) {
respContent = "您发送的是地理位置消息!";
}
// 链接消息
else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_LINK)) {
respContent = "您发送的是链接消息!";
}
// 音频消息
else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_VOICE)) {
respContent = "您发送的是音频消息!";
}
// 事件推送
else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_EVENT)) {
// 事件类型
String eventType = requestMap.get("Event");
// 订阅
if (eventType.equals(MessageUtil.EVENT_TYPE_SUBSCRIBE)) {
respContent = "谢谢您的关注!";
}
// 取消订阅
else if (eventType.equals(MessageUtil.EVENT_TYPE_UNSUBSCRIBE)) {
// TODO 取消订阅后用户再收不到公众号发送的消息,因此不需要回复消息
}
// 自定义菜单点击事件
else if (eventType.equals(MessageUtil.EVENT_TYPE_CLICK)) {
// TODO 自定义菜单权没有开放,暂不处理该类消息
}
}

textMessage.setContent(respContent);
respMessage = MessageUtil.textMessageToXml(textMessage);
} catch (Exception e) {
e.printStackTrace();
}

return respMessage;
}
}

代码说明:

1)第29行:调用消息工具类MessageUtil解析微信发来的xml格式的消息,解析的结果放在HashMap里;

2)32~36行:从HashMap中取出消息中的字段;

3)39-44、84行:组装要返回的文本消息对象;

4)47~82行:演示了如何接收微信发送的各类型的消息,根据MsgType判断属于哪种类型的消息;

5)85行:调用消息工具类MessageUtil将要返回的文本消息对象TextMessage转化成xml格式的字符串;

关于事件推送(关注、取消关注、菜单点击)

对于消息类型的判断,像文本消息、图片消息、地理位置消息、链接消息和语音消息都比较好理解,有很多刚接触的朋友搞不懂事件推送消息有什么用,或者不清楚该如何判断用户关注的消息。那我们就专门来看下事件推送,下图是官方消息接口文档中关于事件推送的说明:

⑸ PHP怎么实现主动向客户端发送信息

实现消息推送首先需要浏览器支持 websocket 协议,这是前提,然后再通过浏览器发起websocket 请求到服务器,建立一条连接,这是服务器端就可以通过这条连接向浏览器推送消息了。

服务器端对websocket的支持可以通过一些第三方库来实现,供参考

  1. hoa/websocket网页链接

  2. swoole 库

⑹ PHP如何实现语音技术

还真不知道有没有基于语音的,只知道有基于文本的

可以找到这种基于文本的在线的聊天的东西,你可以看到谁正在访问你的网站,你可以主动向访问者申请交流,访问者也可以点击网站的连接直接找你交流。这种东西php开源的有好多,比如:livesupport,
另外qq也有这种东西的技术实现,不过没有用过,qq的好点。

⑺ php怎么做语音聊天

如果是新手的话建议用ajax 如果属于中级阶段的话建议用ob缓冲

⑻ php做语音聊天室的具体方法有吗求分享

可以去找ZEGO即构科技,他们支持php做语音聊天室,并且快速便捷,支持多种语言框架,例如React Native、JavaScript 、Swift、Electron、Flutter等多种语言框架。

⑼ php如何实现语音聊天 - PHP进阶讨论

找到php的音频转换工具,基于html5开发的android和ios的app应用上实现语音聊天功能也就理论上打通了。
1. 用phonegap封装成android应用,phonegap官网上有详细介绍
2.实现js和android原生语言java的通信(google有介绍)
3.调用原生语言实现录音功能(mediaRecorder类),录音格式为 amr格式(android本身支持的语言)
4.回调js方法,把amr文件地址传给phonegap,利用phonegap读取录音文件并上传到服务器端
5.服务器端利用ffmpeg2theora 将amr转为html5支持的音频格式ogg
6.接下来读取文件,利用html5的audio 播放ogg文件。

阅读全文

与php发送语音消息相关的资料

热点内容
荣耀10青春版支持方舟编译啊 浏览:158
最优估计pdf 浏览:826
androiddrawtext字体 浏览:669
c语言源编辑源程序编译 浏览:821
手里捏东西真的可以解压吗 浏览:265
编译原理画状态表 浏览:28
用echo命令产生下列输出 浏览:358
在内网如何访问服务器 浏览:959
java导入oracle数据库 浏览:132
坚朗内开内倒铝条算法 浏览:259
华为阅读新建文件夹 浏览:770
幻塔如何选择服务器 浏览:221
解压先把文件压到系统盘 浏览:822
access压缩和修复数据库 浏览:791
光纤交换机命令 浏览:513
白色桌放什么文件夹 浏览:296
分治算法思想 浏览:151
s曲线加减速算法 浏览:403
可编程序控制器原理及应用答案 浏览:458
小熊编程教程 浏览:911