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

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

相关文章

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

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

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

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

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

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

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

将java程序打包成可执行文件的实现方式

《将java程序打包成可执行文件的实现方式》本文介绍了将Java程序打包成可执行文件的三种方法:手动打包(将编译后的代码及JRE运行环境一起打包),使用第三方打包工具(如Launch4j)和JDK自带... 目录1.问题提出2.如何将Java程序打包成可执行文件2.1将编译后的代码及jre运行环境一起打包2

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开

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

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