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

目录

  • 写在前面
  • RecorderManager录音相关
  • innerAudioContext播放相关

写在前面

关于微信小程序的录音和语音方面,踩了很多坑,记录一下
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 —— 是否遵循系统静音开关 默认为false
    注意:在ios系统中,如果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)

相关文章