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

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

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

这些心智程序你安装了吗?

原文题目:《为什么聪明人也会做蠢事(四)》 心智程序 大脑有两个特征导致人类不够理性,一个是处理信息方面的缺陷,一个是心智程序出了问题。前者可以称为“认知吝啬鬼”,前几篇文章已经讨论了。本期主要讲心智程序这个方面。 心智程序这一概念由哈佛大学认知科学家大卫•帕金斯提出,指个体可以从记忆中提取出的规则、知识、程序和策略,以辅助我们决策判断和解决问题。如果把人脑比喻成计算机,那心智程序就是人脑的

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:'error'是设置我们失败的logo 设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给