当前位置: 首页 > news >正文

uniapp:录音权限检查,录音功能

1.可以使用:plus.navigator.checkPermission检查运行环境的权限
2.如果是"undetermined"表示程序未确定是否可使用此权限,此时调用对应的API时系统会弹出提示框让用户确认:plus.audio.getRecorder()

<template><view class="index"><view class="title">虚拟人类智能AI已唤醒,可以随时开始聊天啦</view><view class="lists"><view class="item" v-for="(item,index) in 13" :key="index"><image src="../../static/img/4.png" mode=""></image><view class="right"><view class="name">智能AI</view><view class="time">11-20 14:18:27</view><view class="text">内容内容长度内长度长度长度长度</view></view></view></view><view class="footers"><view class="submit" @longpress="star" @touchend="stop"><image src="../../static/img/5.png" mode=""></image><view class="text1">按住说话</view><view class="text2">Copyright @ 2023 相关内容由人工智能技术生成</view></view></view></view>
</template><script>const recorderManager = uni.getRecorderManager();const innerAudioContext = uni.createInnerAudioContext();innerAudioContext.autoplay = true;export default {data() {return {audioSrc:'',status:0,// 1录制中,0已结束}},onLoad() {var quanxianData = plus.navigator.checkPermission('RECORD');if(quanxianData !== 'authorized'){// 先调用一次,提示开启权限recorderManager.start({format:'PCM'});setTimeout(()=>{uni.hideLoading();this.status = 0;recorderManager.stop();},500)}// 录音停止事件recorderManager.onStop((res)=> {if(this.status == 1){console.log(res);this.audioSrc = res.tempFilePath;this.status = 0;}});},methods: {star() {// 长按录制前 再次判断当前权限状态。var quanxianData = plus.navigator.checkPermission('RECORD');if(quanxianData !== 'authorized'){uni.showToast({title: '请前往设置,开启录音权限',icon: 'none'});}else{if(this.status == 1) returnuni.showLoading({title: '请说出您的问题',mask:true});this.status = 1;recorderManager.start({format:'PCM'});}},stop() {uni.hideLoading();recorderManager.stop();},}}
</script>
http://www.lryc.cn/news/237596.html

相关文章:

  • Rust开发——切片(slice)类型
  • 如何给shopify motion主题的产品系列添加description
  • 力扣刷题-二叉树-二叉树最小深度
  • 注解方式优雅的实现 Redisson 分布式锁
  • PHP/Laravel通过经纬度计算距离获取附近商家
  • grafana面板介绍
  • 实验三 循环结构程序设计(Python)
  • Flutter笔记:目录与文件存储以及在Flutter中的使用(上)
  • 注意了!申请流量卡时地址一定不要填写学校,不好下卡哦!
  • minio使用shell上传文件
  • LeetCode538. Convert BST to Greater Tree
  • iPaaS和RPA,企业自动化应该如何选择?
  • AI实践与学习1_Milvus向量数据库实践与原理分析
  • 3Dexcite deltgen 2022x 新功能
  • 代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
  • 【2023云栖】陈守元:阿里云开源大数据产品年度发布
  • Element UI 禁用数字输入框组件添加鼠标滚动事件
  • 担忧CentOS停服?KeyarchOS系统来支撑
  • 聚观早报 |联想集团Q2财季业绩;小鹏汽车Q3营收
  • SAP ABAP权限控制中常用TCODE
  • 云计算赛项容器云2023搭建
  • 11.1 文件拷贝移动与删除
  • redhat下使用CentOS yum源,并安装docker
  • 基于单片机体温脉搏检测控制系统及源程序
  • MyBatis-Plus逻辑删@TableLogic
  • 本地私域线上线下 线上和线下的小程序
  • 【前端学java】java中的Object类(8)
  • TensorFlow实战教程(二十六)-什么是生成对抗网络GAN?基础原理和代码普及
  • IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Maven依赖管理,版本号管理,继承和聚合
  • OpenVPN Connect使用连接公网VPN服务器实现内网穿透