官方文档必须首当其冲

1.微信jsAPI 录音文档

2.获取微信临时素材文档

首先H5录音功能的话 对于普通H5网上是有很多的方法 插件  但是兼容性很差 特别是对于ios 一开始想的是用H5 做个通用的 但是一圈下来 发现兼容性就很难受

好在项目是基于微信公众号 放弃使用普通H5的想法 转战使用微信提供的 JSAPI 录音功能 一下子解决了兼容的问题 微信已经帮忙处理完毕

接下来说一下 注意事项

在使用微信提供的录音功能前

1.首先的是进入微信公众号后台 公众号设置的功能设置 里填写“JS接口安全域名” 一定要记得 

2.先引入微信JS 简单的

  1. <script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> //(https://res.wx.qq.com/open/js/jweixin-1.6.0.js)

3.注册微信配置 使用wx.config()   将要使用的api 填写到jsApiList里面 要记得 

注意:签名问题 一是服务端算法问题 二是前端当前地址和请求的地址不同 也会出现签名错误  关于签名问题 其他文章也有说明产生的原因

录音功能 不是立即使用 所以 只需检测是否配置环境成功即可 wx.ready()..等回调方法

.js 配置注册微信环境代码示例

  1. export async function wechatSharefund (columnInfo) {
  2. const data = await wechatConfig(location.href.split('#')[0]) // 返回的微信信息
  3. console.log(data)
  4. if (data.code === 0) {
  5. // 注册
  6. wx.config({
  7. debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  8. appId: data.data.appId, // 必填,公众号的唯一标识
  9. timestamp: data.data.timestamp, // 必填,生成签名的时间戳
  10. nonceStr: data.data.nonceStr, // 必填,生成签名的随机串
  11. signature: data.data.signature, // 必填,签名
  12. jsApiList: [
  13. 'updateAppMessageShareData',
  14. 'updateTimelineShareData',
  15. 'startRecord',
  16. 'stopRecord',
  17. 'playVoice',
  18. 'onVoiceRecordEnd',
  19. 'uploadVoice',
  20. 'onVoicePlayEnd',
  21. 'downloadVoice'
  22. ] // 必填,需要使用的JS接口列表
  23. })
  24. // 是否成功
  25. wx.ready(function(res) {
  26. console.log([res, 90])
  27. wx.updateAppMessageShareData({
  28. title: '我是自定义首页!!!!!好友' + store.getters.doctorId,
  29. desc: '自定义描述', // 分享描述
  30. link: 'https://doctor.taiori.com/doctor/hospitalIndex?userParam=' + store.getters.doctorId,
  31. imgUrl: '', // 分享图标
  32. success: function () {
  33. // 设置成功
  34. }
  35. })
  36. wx.updateTimelineShareData({
  37. title: "我是自定义首页!!圈" + store.getters.doctorId,
  38. link: 'https://doctor.taiori.com/doctor/hospitalIndex?userParam=' + store.getters.doctorId,
  39. imgUrl: '',
  40. success: function() {
  41. }
  42. });
  43.  
  44. });
  45. // 是否支持指定JS接口
  46. wx.checkJsApi({
  47. jsApiList: ['startRecord'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
  48. success: function (res) {
  49. console.log([res, '114'])
  50. store.commit('jsApiList', res)
  51. // 以键值对的形式返回,可用的api值true,不可用为false
  52. // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
  53. }
  54. })
  55. wx.error(function(res){
  56. console.log(res)
  57. })
  58. }

在使用的地方 引入.j文件

  1. import { wechatSharefund } from '.js'
  2. mounted () {
  3. wechatSharefund()
  4. }

使用简单的

  1. touchstart () {
  2. console.log('开始录音')
  3. if (this.localId) {
  4. return
  5. }
  6. let that = this
  7. wx.startRecord({
  8. success: function(e){
  9. // 开始录音的代码处理
  10. },
  11. cancel: function (e) {
  12. console.log(e)
  13. }
  14. })
  15. },
  16. touchend () {
  17. console.log('结束录音')
  18. if (this.localId) {
  19. return
  20. }
  21. let that = this
  22. clearInterval(this.timer)
  23. wx.stopRecord({
  24. success: function (res) {
  25. // 结束后的代码处理
  26. }
  27. })
  28. }

最后 会涉及到 保存录音 及 上传到自己服务器动作 简单的 使用相对于的API

微信临时素材返回的是speex文件 需要解码成想要的播放MAP3或者wav 前端可直接播放的链接 解码微信有提供方法

  1. uploadVoice() {
  2. let that = this
  3. // 上传到微信为临时素材
  4. wx.uploadVoice({
  5. localId: this.localId, // 需要上传的音频的本地ID,由stopRecord接口获得
  6. isShowProgressTips: 1, // 默认为1,显示进度提示
  7. success: function (res) {
  8. // 获得微信服务端音频ID
  9. var serverId = res.serverId; // 返回音频的服务器端ID
  10. console.log(res)
  11. // 服务端提供接口 传递 音频ID 由服务端处理从微信服务端下载临时素材 存为自己的服务器链接
  12. // http请求方式: GET,https调用 https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID 请求示例(示例为通过curl命令获取多媒体文件)
  13. // curl -I -G "https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID"
  14. // $.ajax({
  15. // url: 'https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID', // 服务端提供的接口链接
  16. // type: 'GET',
  17. // dataType: "json",
  18. // success: function (data) {
  19. // alert('文件已经保存到自己的服务器');
  20. // },
  21. // error: function (xhr, errorType, error) {
  22. // console.log(error);
  23. // }
  24. // });
  25.  
  26. }
  27. });
  28. }

vue 公众号H5 使用微信JSAPI 录音 完整齐全的更多相关文章

  1. 微信公众号配置及微信jsAPI支付

    公众号配置 一.基本配置 首先登陆微信公众平台,在开发--->配置--->公众号开发信息,获取到AppId,开发者秘钥是后台需要的,给到后台,IP白名单配置就是你服务器的IP地址写到里面就 ...

  2. 微信公众号H5支付遇到的那些坑

    简史 官方文档说的很清楚,商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程. 当然,最近微信支付平台也加入了纯H5支付,也就是说用户可以在微信以外的 ...

  3. 微信支付-微信公众号支付,微信H5支付,微信APP支付,微信扫码支付

    在支付前,如果使用第三方MVC框架,则使用重写模式,服务器也需要配置该项 if (!-e $request_filename){ rewrite ^/(.*)$ /index.php/$ last; ...

  4. 在微信框架模块中,基于Vue&Element前端的微信公众号和企业微信的用户绑定

    在一个和微信相关的业务管理系统,我们有时候需要和用户的微信账号信息进行绑定,如对公众号.企业微信等账号绑定特定的系统用户,可以进行扫码登录.微信信息发送等操作,用户的绑定主要就是记录公众号用户的ope ...

  5. 公众号H5页面接入微信登录流程

    公众号H5页面接入微信登录流程 源码地址 https://gitee.com/szxio/h5_weixin 起步 首先创建一个项目,我们采用uni-app来作为我们的前端框架 环境安装 全局安装vu ...

  6. 微信小程序及公众号H5自动化测试攻略

    目前市面上,被大家用来做移动端App UI自动化测试工具最为常见的当属: Appium Airtest 很多小伙伴在刚接触这两款工具做App UI自动化测试时,难免会问到,他们能支持微信小程序或者微信 ...

  7. FAutoTest-微信小程序 / 公众号H5 自动化利器

    X5内核H5自动化背景 近来有很多童靴咨询如何做微信小程序/公众号等H5页面来做自动化,之前写了一篇文章微信小程序自动化测试实践 https://www.cnblogs.com/yyoba/p/945 ...

  8. thinkphp.2 thinkphp5微信支付 微信公众号支付 thinkphp 微信扫码支付 thinkphp 微信企业付款5

    前面已经跑通了微信支付的流程,接下来吧微信支付和微信企业付款接入到thinkphp中,版本是3.2 把微信支付类.企业付款类整合到一起放到第三方类库,这里我把微信支付帮助类和企业付款类放到同一个文件了 ...

  9. Vue3+Typescript+Node.js实现微信端公众号H5支付(JSAPI v3)教程--各种填坑

    ----微信支付文档,不得不说,挺乱!(吐槽截止) 功能背景 微信公众号中,点击菜单或者扫码,打开公众号中的H5页面,进行支付. 一.技术栈 前端:Vue:3.0.0,typescript:3.9.3 ...

随机推荐

  1. CentOS 无法加载 ntfs文件系统类型解决办法

    问题: CentOS无法加载ntfs 文件系统类型的移动硬盘. 解决办法: 1.下载rpmforge,下载对应的版本.(对应的CentOS版本,并区分32位和64位). 例如: wget http:/ ...

  2. P2060 马步距离(洛谷)

    我们无论遇到什么困难,都不要拖,微笑着面对他,战胜拖延的最好方法就是面对拖延. 今天又拖延了…… 早晨听完老师讲课,本想做一道题练练手的,结果因为懒,瘫了一上午.最后在固定的刷题时间去面对了这道题,然 ...

  3. pyenv虚拟环境安装

    安装过程 配置yum源 # curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo ...

  4. antd实战:表单上传,文件列表的过滤与限制。

    用表单上传组件最痛苦的地方是: 他的诸多行为与纯上传组件不一样,而表单的文档关于这一块基本上没有提,只能自己试. 比如我想做一个上传前的拦截. beforeUpload: (file, fileLis ...

  5. Web优化躬行记(1)——CSS

    Web优化的对象包括页面性能.用户体验.开发效率.代码优化.网络延迟等,本系列会列举出众多常用的优化技巧,每个技巧都可深入分析,在此只做抛砖引玉. 本系列优化内容提炼于<前端面试宝典>.& ...

  6. MySQL数据库的安装方法

  7. html命名规则

    CSS样式命名 外套 wrap ------------------用于最外层 头部 header ----------------用于头部 主要内容 main ------------用于主体内容( ...

  8. Repeating Decimals UVA - 202---求循环部分

    原题链接:https://vjudge.net/problem/UVA-202 题意:求一个数除以一个数商,如果有重复的数字(循环小数),输出,如果没有,输出前50位. 题解:这个题一开始考虑的是一个 ...

  9. Mosquitto的搭建(websocket、ssl、auth-plug)及坑点总结

    Mosquitto的搭建及坑点总结 主要讲述的是eclipse-mosquitto的C语言版本的搭建,主要是为了从1.4.15版本升级到1.6.9,为解决一些webSocket和数据格式问题. 因为根 ...

  10. Android Zero (开篇)

    Android Zero == 从零开始 本文章主要打算给将要入门Android或刚刚入门Android的小伙伴适用的,开篇的几个案例都会抛弃所有现在用到的新技术和第三方框架,用最原生的方法从0演示, ...