微信小程序-语音输入(录音并播放)

2024-04-03 05:52

本文主要是介绍微信小程序-语音输入(录音并播放),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

xml

        <view class="other-des"><view class="other-des-list"><view wx:for="{{imgFiles}}" wx:key="index"><view class="des-name" hidden="{{item.fileType!='mp3'}}">语音</view><view><view bindtap="playVoice" data-url="{{item.url}}" class="voice" hidden="{{item.fileType!='mp3'}}">{{item.duration}}</view></view></view></view><view class="action"><view bindtouchstart="audiostart" bindtouchend="audioend"><image class="action-icon" src="../images/icon_voice.png" mode="" /></view></view></view><view bindtouchstart="audiostart" bindtouchend="audioend"><image class="action-icon" src="../images/icon_voice.png" mode="" /></view>

.js

// expertConsultations/addQuestion/index/index.js
const httpUtils = require("../../../utils/httpUtils")
const stringUtils = require("../../../utils/stringUtils")
const app = getApp()
//定义一个全局变量,调用微信官方定义语音管理对象
const recorderManager = wx.getRecorderManager();
Page({/*** 页面的初始数据*/data: {phone: '',questionTypeIndex: '',questionTypeOptions: [],title: "",info: "",biaoQian: "",imgFiles: [],zid: '',},/*** 生命周期函数--监听页面加载*/onLoad(options) {this.setData({zid: options.id})},onInput() {},cancelTap() {wx.navigateBack()},//语音开始audiostart: function () {wx.showToast({title: '正在录音...',icon: 'loading',duration: 10000});recorderManager.start({format: 'mp3'});},//语音结束audioend: function () {//弹窗消失wx.hideToast({title: '正在录音...',icon: 'loading'});var path = "";var that = this;recorderManager.stop();recorderManager.onStop(function (res) {path = res.tempFilePath;console.log("结束", res)console.log(res.tempFilePath)if (res.duration < 1000) {wx.showModal({title: '录音时长太短,请重新录音',content: '',})} else {if (res.tempFilePath != "") {console.log(that.data.imgFiles);that.setData({imgFiles: that.data.imgFiles.concat([{url: res.tempFilePath,tempFilePath: res.tempFilePath,fileType: 'mp3',duration: parseInt(res.duration / 1000)}])});console.log(2, that.data.imgFiles);//将语音文件保存至后台// that.saveVoiceInfo(res.tempFilePath);} else {}}});},playVoice() {// 获取innerAudioContext实例const innerAudioContext = wx.createInnerAudioContext()// 是否自动播放innerAudioContext.autoplay = true// 设置音频文件的路径innerAudioContext.src = this.data.tempFilePath;// 播放音频文件innerAudioContext.onPlay(() => {console.log('开始播放')});// 监听音频播放错误事件innerAudioContext.onError((res) => {console.log(res.errMsg)})},//保存至后台saveVoiceInfo: function (path) {var that = this;},})

css

.other-des {width: 100%;min-height: 100rpx;background: rgba(217, 217, 217, 0);border-radius: 10rpx;border: 2rpx solid #D9D9D9;position: relative;padding: 20rpx;box-sizing: border-box;
}
.other-des-list {margin-bottom: 30rpx;
}
.image {width: 300rpx;height: auto;background: #E7E7E7;border-radius: 10rpx;
}.des-name {font-size: 26rpx;font-family: Source Han Sans CN-Regular, Source Han Sans CN;font-weight: 400;color: #666666;line-height: 30rpx;margin-bottom: 10rpx;margin-top: 20rpx;
}
.action {position: absolute;right: 0;bottom: 0;display: flex;align-items: center;justify-content: flex-end;
}.action-icon {width: 50rpx;height: 50rpx;margin-left: 30rpx;
}

这篇关于微信小程序-语音输入(录音并播放)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/872072

相关文章

Java使用WebView实现桌面程序的技术指南

《Java使用WebView实现桌面程序的技术指南》在现代软件开发中,许多应用需要在桌面程序中嵌入Web页面,例如,你可能需要在Java桌面应用中嵌入一部分Web前端,或者加载一个HTML5界面以增强... 目录1、简述2、WebView 特点3、搭建 WebView 示例3.1 添加 JavaFX 依赖3

防止SpringBoot程序崩溃的几种方式汇总

《防止SpringBoot程序崩溃的几种方式汇总》本文总结了8种防止SpringBoot程序崩溃的方法,包括全局异常处理、try-catch、断路器、资源限制、监控、优雅停机、健康检查和数据库连接池配... 目录1. 全局异常处理2. 使用 try-catch 捕获异常3. 使用断路器4. 设置最大内存和线

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专