一 概述

  • 开始播放和暂停播放按钮,演示音频的播放和暂停功能
  • 开始播放时,先下载服务器上的文件(1.mp3),然后进行播放
  • 录音、停止、回放按钮,演示录音API的相关功能
  • 上传按钮将录音文件上传到后台htdocs文件夹下

二 后台服务器的开启

2.1 后台服务器说明

说明:

  • upfile:点击上传按钮后,将文件上传到此文件夹下
  • 1.mp3:点击开始播放,下载1.mp3文件,然后播放

2.2 启动服务器

node index.js

三 小程序示例

3.1 布局文件(index.wxml)

<view class="btn-rows"><button class="btn" bindtap="play" size="mini">开始播放</button><button class="btn" bindtap="pause" size="mini">暂停播放</button>
</view><view class="song">此处放置要播放的内容   此处放置要播放的内容   此处放置要播放的内容
</view><view class="btn-rows"><!-- 录音record()函数 --><button class="btn" bindtap="record" size="mini">录音</button><!-- 停止stop()函数 --><button class="btn" bindtap="stop" size="mini">停止</button><!-- 回放playback()函数 --><button class="btn" bindtap="playback" size="mini">回放</button><!-- 上传upload()函数 --><button class="btn" bindtap="upload" size="mini">上传</button>
</view>

3.2 样式文件(index.wxss)

page{width: 100%;padding: 0rpx 20rpx 10rpx 20rpx;box-sizing: border-box;
}
.btn-rows{display: flex;flex-direction: row;
}
.song{font-size: 32rpx;margin: 10rpx;
}
.btn{flex: 1;margin: 5rpx;background: #eeeeee;
}

3.3 逻辑文件(index.js)

//var tempFilePath = null
var tempFilePath = '/res/1.mp3' //模拟时使用此地址
var audioCtx = wx.createInnerAudioContext()
var rec = wx.getRecorderManager()
rec.onStop(res => {tempFilePath = res.tempFilePathconsole.log('结束录音' + tempFilePath)
})Page({//开始录音record: function () {rec.start()console.log('开始录音')},//停止录音stop: function () {rec.stop()},//回放录音playback: function () {audioCtx.src = tempFilePathaudioCtx.play()},//上传录音upload: function () {if (!tempFilePath) {wx.showToast({title: '还没有录音哦'})return}wx.uploadFile({filePath: tempFilePath,name: 'file',url: 'http://localhost:3000/upload', //服务器地址success: res => {console.log('文件上传成功' + res)},fail: res => {console.log('文件上传失败', res)}})},//播放文章play: function () {wx.showLoading({title: '音频下载中',})//从服务器中,把音频下载到本地wx.downloadFile({url: 'http://localhost:3000/1.mp3', // 服务器资源地址success: res => {//下载完成,播放音频console.log('开始播放')audioCtx.src = res.tempFilePathaudioCtx.play()wx.hideLoading()},fail: res => {wx.hideLoading()wx.showToast({title: '出错了',})}})},//暂停/继续播放pause: function () {if (audioCtx.pause) {audioCtx.play()} else {audioCtx.pause()}}
})

说明:

  • 使用录音时,请使用真机,本文演示使用模拟器
  • 真机时,tempFilePath为null,本文演示使用固定路径/res/1.mp3(请确保有此文件)

3.4 效果图(点击上传,文件上传到upload文件夹)

四 参考代码

  • 参考代码

微信小程序开发之——录音播放及文件上传下载-示例(2)相关推荐

  1. 微信小程序开发之——录音播放及文件上传下载-理论(1)

    一 概述 小程序录制音频相关的API--recorderManager 小程序播放音频相关的API--InnerAudioContext 文件的上传相关API--wx.uploadFile 文件的下载 ...

  2. 微信小程序之使用vant-3组件Uploader文件上传

    效果图: 微信小程序之使用vant-3组件Uploader文件上传 1.把vant的weapp包加进来 2.在app.json文件里面"usingComponents"加载进来才能 ...

  3. 微信小程序 - 超详细 “纯前端“ 将文件上传到阿里云 OSS,最新阿里云 OSS 直传音视频、图片、word、excel、ppt、office 文档(全程无需后端,前端文件直传阿里云oss服务器)

    前言 网上的教程乱七八糟却文件少代码(并且没注释),而且都已经很老了,对于新手来说真的无从下手. 本文站在新手小白的角度,实现微信小程序开发中,"前端直传" 上传文件到阿里云oss ...

  4. 微信小程序开发工具 清除授权缓存/文件缓存/登录缓存等等

    今天2.19.3.25 在开发微信小程序时,作为测试号想清除授权缓存,一直没有找到方法, 最后无意中看到了解决方法 微信小程序开发工具 清除授权缓存/文件缓存/登录缓存等等.完美解决

  5. 微信小程序多张图片和表单一起上传,验证表单及进度条的实现完整代码

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: 效果图: 完整代码: <!--pages/register/register.wxml--> ...

  6. 微信小程序开发之——音乐播放器-播放器(3.4)

    一 概述 常用组件及API介绍 播放器页面任务 播放器页面任务 数据准备 音乐播放功能 播放器页面 二 常用组件及API介绍 2.1 音频API 介绍 微信小程序提供了播放音频的API,掌握这个API ...

  7. 微信小程序开发之——音乐播放器-音乐推荐

    一 概述 常用组件介绍 内容区域滚动 轮播图 功能按钮 热门音乐 二 常用组件介绍 2.1 scroll-view 组件 组件介绍 scroll-view组件用于实现可滚动视图区域 一般来说,当页面的 ...

  8. 微信小程序+Django实现录音并在服务器上保存在指定文件夹

    最近在做一个django后台的小程序开发,要用到小程序的录音功能,并且要把MP3文件保存在服务器上,今天就记录一下.推荐使用wx.getRecorderManager()方法,因为wx.stopRec ...

  9. 微信小程序实现录音格式为mp3,并上传到云开发环境

    前言 微信小程序中可以实现录音的主要有wx.startRecord()和wx.getRecorderManager(),其中wx.startRecord()从微信开发者工具基础库1.6后停止维护,开始 ...

最新文章

  1. nyoj-228(士兵杀敌五) hdu-1556 Color the ball
  2. 【软件工程】第一章重点
  3. 生命银行怎么样_减脂就像是从“脂肪银行”中提款,想要成功,你要做到这两点...
  4. chajian8.com谈:SyntaxHighlighter 代码高亮
  5. 一步一步写算法(之大数计算)
  6. IoT技术架构与安全威胁
  7. 157. PHP 闭标签
  8. 清华大学计算机考研信息汇总
  9. perl uc,lc,ucfirst,lcfirst的用法
  10. R 实现层次分析法确定指标权重
  11. Power Switching ----- Controlling power for power shutoff
  12. 安徽科技学院 信网学院网络文化节 陈鑫鑫
  13. 隐私泄露距离你我有多远?APP扩大个人隐私收集,增大隐私保护难度
  14. 【opencv学习之十二】opencv滑条及实例
  15. fuzzy仿真 MATLAB,基于MATLAB的FUZZY控制器的设计和仿真
  16. 【回眸】关于网线水晶头里八根线的作用
  17. 平面设计的福音,速看!
  18. 身份证号验证(正则升级版)
  19. 快速掌握Charles抓包工具 [MP4] (115M)
  20. 【python】windows定时运行python脚本

热门文章

  1. 考试系统没有检测到C语言编程环境
  2. 基于SSM+Vue大学生勤工俭学管理系统Java高校勤工助学系统(源码调试+讲解+文档)
  3. 西北工业大学计算机学院人才特区,我校举行人才特区“计算科学研究中心”揭牌仪式...
  4. 时间序列模型中,哪一个模型可以较好地拟合波动性的分析和预测
  5. IDC机房带宽突然暴涨原因分析及应对方法
  6. 进制转换 | 北邮机试 | bupt oj | 95.二进制数
  7. beauty-of-math
  8. 2021-05-03 GTX650刷入UEFI模块
  9. 女人入洞房那天以后!!
  10. 专访车慧总裁刘琦:大数据时代的汽车营销才刚刚开始