uniapp:钉钉小程序需要录音权限及调用录音

{
    // ... 其他配置项
    "mp-dingtalk": {
        "permission": {
             "scope.userLocation" : {
                "desc" : "系统希望获得您的定位用于确认您周围的设施数据"
            },
            "scope.bluetooth" : {
                "desc" : "你的蓝牙权限将用于小程序搜索打印机、连接打印机、打印相关功能"
            },
			"microphone" : {
			    "desc" : "录音功能需要麦克风权限"
			}
            // ... 其他权限配置
        }
        // ... 其他dring配置
    }
    // ... 其他配置项
}
mounted() {
	if (dd.canIUse('getRecorderManager')) { // 端上支持
		this.recorderManager = dd.getRecorderManager()
	} else { // 端上不支持
		dd.alert({
			content: '请升级钉钉版本至7.0.10以支持录音功能'
		})
	}
	this.audioManager = uni.getBackgroundAudioManager();
},
const recorderManager = uni.getRecorderManager();
 
recorderManager.start({
    duration: 60000, // 录音的最大时长,单位 ms
    sampleRate: 16000, // 采样率
    numberOfChannels: 1, // 录音通道数
    encodeBitRate: 96000, // 编码码率
    format: 'aac' // 音频格式,只在mp3格式下有效,是否调用getFrameBuffer
});
 
############### 编译钉钉会找不到对应方法 #####################

recorderManager.onStart(() => {
    console.log('录音开始');
});
 
recorderManager.onStop((res) => {
    console.log('录音结束', res);
    const { tempFilePath } = res;
    // 处理录音文件...
});

recorderManager.onError((error) => {
    console.error('录音错误', error);
});
 
############### 编译钉钉会找不到对应方法 #####################

 
############### 调用正确 #####################

recorderManager.onstart = (res) => {
    console.log('录音开始');
}
 
recorderManager.onstop = (res) => {
    console.log('录音结束', res);
    const { tempFilePath } = res;
    // 处理录音文件...
}

recorderManager.onerror = (err) => {
    console.error('录音错误', err);
};
 
############### 调用正确 #####################
 
// 停止录音
recorderManager.stop();

由于在uniapp中使用长按事件,编译钉钉小程序后无效,所以只能使用click事件声明一个字段来判断长按松开~~~~

如果过程中,录音之后无响应,使用onerror打印错误:

一般是遇到文件无法保存的问题,直接真机测试就没有问题了~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/951293.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java agent

‌ Java Agent是一种特殊的Java程序,它可以在JVM启动时或运行时动态加载,用于监控和修改其他Java应用程序的行为‌。通过Java Agent,开发者可以在不修改目标应用程序源码的情况下,动态地插入功能,如性能分析、日志记录…

Cannot run program “docker“: CreateProcess error=2,系统找不到指定的文件

今天被这个问题坑了, 网上教程全是直接装插件就行 ,结果我连接可以成功 但是执行docker compose 就会出错, 检测配置 报错com.intellil,execution,process.ProcessNotCreatedException: Cannot run program “docker”: CreateProcess error2,系统找不到指定的文件 gpt 要我去…

二、模型训练与优化(4):模型优化-实操

下面我将以 MNIST 手写数字识别模型为例,从 剪枝 (Pruning) 和 量化 (Quantization) 两个常用方法出发,提供一套可实际动手操作的模型优化流程。此示例基于 TensorFlow/Keras 环境,示范如何先训练一个基础模型,然后对其进行剪枝和…

免费图片批量压缩工具-支持批量修改分辨率

工作需求,需要支持修改分辨率上限的同时进行图片压缩,设计此工具。 1.支持批量文件夹、子文件 2.支持最大分辨率上限(高于设定分辨率的图片,强制修改为指定分辨率,解决大图的关键) 3.自定义压缩质量&#x…

Github上传项目

写在前面: 本次博客仅仅是个人学习记录,不具备教学作用。内容整理来自网络,太多了,所以就不放来源了。 在github页面的准备: 输入标题。 往下滑,创建 创建后会跳出下面的页面 进入home就可以看到我们刚…

并发编程 之 Java内存模型(详解)

Java 内存模型(JMM,Java Memory Model)可以说是并发编程的基础,跟众所周知的Java内存区域(堆、栈、程序计数器等)并不是一个层次的划分; JMM用来屏蔽各种硬件和操作系统的内存访问差异,以实现让Java程序在各…

[QCustomPlot] 交互示例 Interaction Example

本文是官方例子的分析: Interaction Example 推荐笔记: qcustomplot使用教程–基本绘图 推荐笔记: 4.QCustomPlot使用-坐标轴常用属性 官方例子需要用到很多槽函数, 这里先一次性列举, 自行加入到qt的.h中.下面开始从简单的开始一个个分析. void qcustomplot_main_init(void); …

WPF控件Grid的布局和C1FlexGrid的多选应用

使用 Grid.Column和Grid.Row布局,将多个C1FlexGrid布局其中,使用各种事件来达到所需效果,点击复选框可以加载数据到列表,移除列表的数据,自动取消复选框等 移除复选框的要注意!!!&am…

04、Redis深入数据结构

一、简单动态字符串SDS 无论是Redis中的key还是value,其基础数据类型都是字符串。如,Hash型value的field与value的类型,List型,Set型,ZSet型value的元素的类型等都是字符串。redis没有使用传统C中的字符串而是自定义了…

生物医学信号处理--随机信号的数字特征

前言 概率密度函数完整地表现了随机变量和随机过程的统计性质。但是信号经处理后再求其概率密度函数往往较难,而且往往也并不需要完整地了解随机变量或过程的全部统计性质只要了解其某些特定方面即可。这时就可以引用几个数值来表示该变量或过程在这几方面的特征。…

LabVIEW数据库管理系统

LabVIEW数据库管理系统(DBMS)是一种集成了数据库技术与数据采集、控制系统的解决方案。通过LabVIEW的强大图形化编程环境,结合数据库的高效数据存储与管理能力,开发人员可以实现高效的数据交互、存储、查询、更新和报告生成。LabV…

合并模型带来的更好性能

研究背景与问题提出 在人工智能领域,当需要处理多个不同任务时,有多种方式来运用模型资源。其中,合并多个微调模型是一种成本效益相对较高的做法,相较于托管多个专门针对不同任务设计的模型,能节省一定成本。然而&…

Virgo:增强慢思考推理能力的多模态大语言模型

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

本地缓存:Guava Cache

这里写目录标题 一、范例二、应用场景三、加载1、CacheLoader2、Callable3、显式插入 四、过期策略1、基于容量的过期策略2、基于时间的过期策略3、基于引用的过期策略 五、显示清除六、移除监听器六、清理什么时候发生七、刷新八、支持更新锁定能力 一、范例 LoadingCache<…

Android adb shell GPU信息

Android adb shell GPU信息 先 adb shell 进入控制台。 然后&#xff1a; dumpsys | grep GLES Android adb shell命令捕获systemtrace_android 抓trace-CSDN博客文章浏览阅读2.5k次&#xff0c;点赞2次&#xff0c;收藏8次。本文介绍了如何使用adbshell命令配合perfetto工…

ElasticSearch | Elasticsearch与Kibana页面查询语句实践

关注&#xff1a;CodingTechWork 引言 在当今大数据应用中&#xff0c;Elasticsearch&#xff08;简称 ES&#xff09;以其高效的全文检索、分布式处理能力和灵活的查询语法&#xff0c;广泛应用于各类日志分析、用户行为分析以及实时数据查询等场景。通过 ES&#xff0c;用户…

RK3588平台开发系列讲解(系统篇)Linux Kconfig的语法

文章目录 一、什么是Kconfig二、config模块三、menuconfig四、menu 和 endmenu五、choice 和 endchoice六、source七、depends on八、default九、help十、逻辑表达式沉淀、分享、成长,让自己和他人都能有所收获!😄 一、什么是Kconfig Kconfig的语法及代码结构非常简单。本博…

STM32 USB组合设备 MSC CDC

STM32 USB组合设备 MSC CDC实现 教程 教程请看大佬niu_88 手把手教你使用USB的CDCMSC复合设备&#xff08;基于stm32f407&#xff09; 大佬的教程很好&#xff0c;很详细&#xff0c;我调出来了&#xff0c;代码请见我绑定的资源 注意事项 值得注意的是&#xff1a; 1、 cu…

深入学习RabbitMQ的Direct Exchange(直连交换机)

RabbitMQ作为一种高性能的消息中间件&#xff0c;在分布式系统中扮演着重要角色。它提供了多种消息传递模式&#xff0c;其中Direct Exchange&#xff08;直连交换机&#xff09;是最基础且常用的一种。本文将深入介绍Direct Exchange的原理、应用场景、配置方法以及实践案例&a…

Node.js——path(路径操作)模块

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…