微信小程序录音,播放的实现

今天给自己定下了一个目标,想着根据微信小程序官方的API,针对单独的小功能写一个小demo。 今天准备写的是关于录音这一块:wx.getRecorderManager 接口

官方提示

1.首先使用方法获取对象

const recorderManager = wx.getRecorderManager()
const innerAudioContext = wx.createInnerAudioContext()

2.开始录音

//开始录音的时候
  start: function () {

    const options = {
      duration: 10000,//指定录音的时长,单位 ms
      sampleRate: 16000,//采样率
      numberOfChannels: 1,//录音通道数
      encodeBitRate: 96000,//编码码率
      format: 'mp3',//音频格式,有效值 aac/mp3
      frameSize: 50,//指定帧大小,单位 KB
    }
    //开始录音
    recorderManager.start(options);
    recorderManager.onStart(() => {
      console.log('recorder start')
    });
    //错误回调
    recorderManager.onError((res) => {
      console.log(res);
    })
  },

3.停止录音

//停止录音
  stop: function () {
    recorderManager.stop();
    recorderManager.onStop((res) => {
      this.tempFilePath = res.tempFilePath;
      console.log('停止录音', res.tempFilePath)
      const { tempFilePath } = res
    })
  },

4.播放录音

//播放声音
  play: function () {
    innerAudioContext.autoplay = true
    innerAudioContext.src = this.tempFilePath,
    innerAudioContext.onPlay(() => {
      console.log('开始播放')
    })
    innerAudioContext.onError((res) => {
      console.log(res.errMsg)
      console.log(res.errCode)
    })
  },

wxml中代码:

<button bindtap="start" class='btn'>开始录音</button>
<button bindtap="stop" class='btn'>停止录音</button>
<button bindtap="play" class='btn'>播放录音</button>

wxss中代码:

.btn{
  margin-top: 10rpx;
}

我会上传详细实用的demo。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python爬虫与数据挖掘

Python大佬批量爬取中国院士信息,告诉你哪个地方人杰地灵

院士(Academician)源于Academy, Academy是古希腊传说中的一位拯救雅典免遭劫难而牺牲的英雄,属于科学及学术界的最高荣誉头衔。哪里盛产生院...

802
来自专栏日暮星辰

Cloudflare 1.1.1.1公共DNS上线Cloudflare Public DNS

1142
来自专栏小白客

全网音乐免费下载的神器

此播放器是全新开发的一款免费下载音乐的音乐播放器,该软件追求个性简洁,无广告无插件,能够在线搜索互联网上大部分音乐,可以提供免费在线收听,同时支持各种音质的音乐...

3549
来自专栏老九学堂

99%的程序猿写完代码后都是这个样子!

1、当你改错一行代码的时候 ? 2、当你想要重构别人的代码时 ? 3、当你尝试想要修复一个bug时的样子 ? 4、当你凌晨4点还在工作时的样子 ? 5、星期五下...

3405
来自专栏腾讯开源的专栏

【开源公告】企鹅电竞多渠道打包组件VasDolly正式开源

VasDolly VasDolly是一个极速多渠道打包组件,同时支持基于V1和V2签名进行渠道打包。组件本身会自动检测Apk使用的签名类别,并选择合适的多渠道...

3478
来自专栏我的博客

位运算的运用

1.linux当中的位 在linux当中我们经常说777、775、755这个代表什么呢?其实很简单! 我们用1表示拥有执行权限,2表示拥有写入权限,4表...

3576
来自专栏编程微刊

前端切图:手机端自适应布局demo

1132
来自专栏landv

泛微云桥e-birdge之金蝶云之家集成配置手册

1365
来自专栏Timhbw博客

Mac OS X和Linux下的微信客户端:Electronic WeChat

Mac OS X 和 Linux下更好用的微信客户端. 使用Electron构建. Electronic WeChat 是本开源项目发布的产品。网页版微信是其中...

33410
来自专栏日暮星辰

关于免费SSL证书的那些事儿

根据 Let’s Encrypt CA 的统计,截至 2017 年 11 月,Firefox 加载的网页中启用 HTTPS 的比例占 67%,比去年底的 45%...

1003

扫码关注云+社区