微信小程序踩坑(二)——微信小程序recorderManager和innerAudioContext相关

摘要:
该目录在前一节中介绍了RecorderManager录制、innerAudioContext播放,在前一部分中介绍了微信小程序录制和语音,其中有很多陷阱。记录recorderManager相关文档、innerAudioContext相关文档、recorderManager记录。在使用RecorderManager相关方法之前,请在页面外部定义全局唯一的录制管理器:construcrderManager

目录

写在前面

关于微信小程序的录音和语音方面,踩了很多坑,记录一下
recorderManager相关文档
innerAudioContext相关文档

RecorderManager录音相关

  • 在使用RecorderManager相关方法之前,在page外先定义全局唯一的录音管理器:
const recorderManager = wx.getRecorderManager();
  • 录音开始
recorderManager.start(options);

经常使用的options的参数:
1.duration:录音时长,默认类型number,默认值60000(10分钟),单位ms;
2.format:音频格式,默认类型aac,默认值string,可选mp3、aac、wav、PCM;

使用recorderManager.start时会弹窗语音授权。

  • 录音停止
recorderManager.stop();
  • 录音暂停
recorderManager.pause();
  • 录音继续
recorderManager.resume();
  • 常用监听事件相关
// 1.监听录音开始
recorderManager.onStart(function callback);
// 2.监听录音停止
recorderManager.onStop(function callback);
// 3.监听录音暂停
recorderManager.onPause(function callback);
// 4.监听录音继续
recorderManager.onResume(function callback);
// 5.监听录音错误
recorderManager.onError(function callback);

innerAudioContext播放相关

  • 在使用RecorderManager相关方法之前,在page外先定义全局唯一的录音管理器:
const innerAudioContext = wx.createInnerAudioContext();

innerAudioContext常用的属性:

  1. src —— 音频地址
    踩坑注意:在ios系统中音频地址的左斜杠‘/’和右斜杠‘’并不通用,使用右斜杠会导致音频无法播放!!!!
  2. autoplay —— 是否自动播放 默认为false
  3. loop —— 是否循环播放 默认为false
  4. obeyMuteSwitch —— 是否遵循系统静音开关 默认为true
    踩坑注意:在ios系统中,如果obeyMuteSwitch为默认值true,那么在系统静音的时候扬声器不会播放音频,但是耳机可以!!!如果有需要,请将obeyMuteSwitch值设置为false
  • 音频播放
innerAudioContext.play();
  • 音频停止
innerAudioContext.stop();
  • 音频暂停
innerAudioContext.pause()
  • 常用监听事件相关
// 1.监听音频自然播放到结束
innerAudioContext.onEnded(function callback);
// 2.监听音频错误
innerAudioContext.onError(function callback);
// 3.监听音频暂停
innerAudioContext.onPause(function callback);
//4. 监听音频播放
innerAudioContext.onPlay(function callback)

免责声明:文章转载自《微信小程序踩坑(二)——微信小程序recorderManager和innerAudioContext相关》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VS15 Visual Assist X破解CPI下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Axja(2) post()和get()方法

  load()方法是局部方法,因为他需要一个包含元素的jQuery 对象作为前缀。而$.get()和$.post()是全局方法,无须指定某个元素。对于用途而言,.load()适合做静态文件的异步获取,而对于需要传递参数到服务器页面的,$.get()和$.post()更加合适。 jQuery.post(url, [data], [callback], [t...

wxparse使用(富文本插件)

优点:目前已知唯一可以转化HTML到小程序识别的插件 缺点:转换一个HTML标签可能需要大量的微信小程序标签还有样式 配置:第一步,下载 https://github.com/icindy/wxParse 第二步,放入项目中,我选择pages目录下 第三步,配置 wxml加入: <import src="http://t.zoukankan.com/...

跨域请求方式之Jsonp形式

在浏览器端才有跨域安全限制一说,而在服务器端是没有跨域安全限制的。 在两个异构系统(开发语言不同)之间达到资源共享就需要发起一个跨域请求。 而浏览器的同源策略却限制了从一个源头的文档资源或脚本资源与来自另一个源头的资源进行交互。在请求协议、端口以及域名(主机)相同时才是同一个源,否则不是同一个源,js无法访问不是同源的资源。 通过js发起跨域请求需要进行改...

微信小程序返回上一页传参并刷新

问题 微信小程序onLoad(options)方法在整个生命周期中只加载一次,也就是你进入下个页面,再返回时,是不会再次触发的,所以你返回是url传参是行不通了。 需求 现在有这么一个需求:一个商品支付页面,点击优惠卷进入优惠券列表页,选中优惠券后带着数据再返回到支付页面。 方法 一、使用到的方法是小程序的页面栈,感兴趣可以打印一下pages的内容,就是你...

uni-app微信相关开发问题记录:微信分享报错"包名不对,请检查包名是否与开放平台填写一致"、Android微信支付只能调起一次的问题、App微信登录与公众号微信登录的unionid不一致

1、微信分享报错“微信:包名不对,请检查包名是否与开放平台填写一致”   具体原因及分析见这篇博客:uniapp微信APP支付踩坑指南:报错errMsg: "requestPayment:fail errors" 2、Android微信支付只能调起一次的问题   Android微信支付只能调起一次,之后就再不成功;有博客说卸载微信重装之后,就能成功,发现...

微信小程序-wxml模板页面逻辑运算

通常在utils中创建一个.wxs后缀的文件(例如:fn.wxs) function addition(a,b){ return Number(a)+Number(b); } module.exports = { addition:addition, } 需要逻辑运算的wxml页面 <wxs src="http://t.zoukankan.co...