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

uni-app/vue 文字转语音朗读(附小程序语音识别和朗读)uniapp小程序使用文字转语音播报类似支付宝收款播报小程序语音识别和朗读)

uni-app/vue 文字转语音朗读(小程序语音识别和朗读)

uniapp小程序功能集合

1、uniapp小程序文字转语音播报

一、第一种方式:直接加语音包

固定的文本
先利用工具生成了 文本语音mp3文件,放入项目中,直接用就好了

这里用到的工具:知意配音
链接地址:https://peiyin.wozhiyi.com/newproduction.html

接下来,代码部分。

  1. 在min.js文件里加入以下代码:
Vue.prototype.ScanAudio = function() {
	var music = null;
	music = uni.createInnerAudioContext(); //创建播放器对象 
	music.src = "../../static/cjcg.mp3";  //这里引入自己生成的mp3音频文件地址
	music.play(); //执行播放
	music.onEnded(() => {
		//播放结束
		music = null;
	});
}

2.在需要使用的页面直接调用:

//这里为接口请求成功的回调里 播放语音提示  
this.ScanAudio();//播放语音  结合自己项目需求调用

二、第二种方式:微信官方同声传译

第一步:登陆微信公众平台,侧边栏的设置-----第三方设置-----插件管理----添加插件(搜索–同声传译)

在这里插入图片描述
第二步:打开 hbiuider-x,找到当前项目,打开manifest.json,找到源码视图,配置插件

在这里插入图片描述

代码块:

// provider是你查看详情以后的appId
"plugins": {
		    "WechatSI": {
		      "version": "0.3.5",
		      "provider": "wx069ba97219f66d99"
		    }
}

第三步,页面引入使用
在这里插入图片描述

let plugin = requirePlugin("WechatSI");
let manager = plugin.getRecordRecognitionManager();
 
 
// 语音播报
			bobao(){
				let _this=this;
				plugin.textToSpeech({
				lang: "zh_CN",
				tts: true,
				content: '我是智能语音播报',
				success: function(res) {
				// console.log("succ tts", res.filename)   
				let music = null;
				music = uni.createInnerAudioContext(); //创建播放器对象
				music.src = res.filename;
				music.play(); //执行播放
				music.onEnded(() => {
					//播放结束
					music = null;
						});
				},
				fail: function(res) {
				     // console.log("fail tts", res)
						}
				})
},

功能实现 ok

2、uniapp小程序人脸识别

已实现

3、uni-app设置安卓系统闹钟

setAlarm(hour,minutes,message) {
 
	var that = this;
	var Intent = plus.android.importClass('android.content.Intent');
	var AlarmClock = plus.android.importClass("android.provider.AlarmClock");
	var intent = new Intent(AlarmClock.ACTION_SET_ALARM);
				
	//闹钟的小时
	intent.putExtra(AlarmClock.EXTRA_HOUR, hour);
 
	//闹钟的分钟
	intent.putExtra(AlarmClock.EXTRA_MINUTES, minutes);
 
	//响铃时提示的信息
	intent.putExtra(AlarmClock.EXTRA_MESSAGE, message);
 
	//对于一次性闹铃,无需指定此 extra
	//一个 ArrayList,其中包括应重复触发该闹铃的每个周日。
	// 每一天都必须使用 Calendar 类中的某个整型值(如 MONDAY)进行声明。
	//例如[this.Calendar.MONDAY,this.Calendar.TUESDAY,this.Calendar.WEDNESDAY]
	intent.putExtra(AlarmClock.EXTRA_DAYS, this.alarmDayList);
 
	//用于指定该闹铃触发时是否振动
	intent.putExtra(AlarmClock.EXTRA_VIBRATE, true);
				
	//如果为true,则调用startActivity()不会进入手机的闹钟设置界面
	intent.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
    
    //清空任务中在其之上的Activity
	intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
	
	var main = plus.android.runtimeMainActivity();
	plus.android.importClass("android.app.Activity");
 
	if (intent.resolveActivity(main.getPackageManager()) != null) {
		main.startActivity(intent);
	}
},

4、uniapp调用震动(uniapp开启短震动、触感反馈实现)

uniapp官网文档
在文档中只找到了uni.vibrateShort的方法,来开启短震动。对应安卓效果还行

uni.vibrateShort({
	success: ()=>{
		console.log('success');
	}
});

注意
iOS上只有长震动,没有短震动
iOS上需要手机设置“打开响铃时震动”或“静音时震动”,否则无法震动
IOS 开启触感反馈
iPhone 使用触感反馈需要手机支持并且在设置中打开,否则并不能触发。所以必须使用H5+的api方法,其核心代码如下:

let UIImpactFeedbackGenerator = plus.ios.importClass(
	'UIImpactFeedbackGenerator'
)
let impact = new UIImpactFeedbackGenerator()
impact.prepare()
impact.init(1)
impact.impactOccurred()

在需要在需要触感反馈的地方,把这段代码复制进去即可!

代码封装
安卓和ios实现公用代码如下:

onFeedTap() {
	let platform=uni.getSystemInfoSync().platform
	// #ifdef APP-PLUS
	if (platform == "ios") {
		let UIImpactFeedbackGenerator = plus.ios.importClass('UIImpactFeedbackGenerator');
		let impact = new UIImpactFeedbackGenerator();
		impact.prepare();
		impact.init(1);
		impact.impactOccurred();
	}
	if (platform == "android") {
		uni.vibrateShort();
	}
	// #endif
},

http://www.kler.cn/news/106953.html

相关文章:

  • Python基础入门例程18-NP18 生成数字列表(列表)
  • 【2024秋招】2023-9-16 贝壳后端开发二面
  • 计算机网络重点概念整理-第一章 计算机网络概述【期末复习|考研复习】
  • 走进国产机器人领军品牌华数机器人,共探数字化变革魔力
  • 智慧停车视频解决方案:如何让AI助力停车管理升级?
  • 垃圾收费站
  • 《动手学深度学习 Pytorch版》 10.3 注意力评分函数
  • python实现批量pdf转txt和word
  • CVE-2022-32991靶场复现
  • 竞赛 深度学习实现行人重识别 - python opencv yolo Reid
  • Win10+Ubuntu20.04双系统双硬盘(SSD+HDD)安装与启动
  • 前端使用 printJS 插件打印多页:第一页空白问题解决
  • 数据结构与算法之矩阵: Leetcode 134. 螺旋矩阵 (Typescript版)
  • Spring Boot集成RESTful API
  • el-table添加固定高度height后高度自适应
  • 【前端】NodeJS核心知识点整理
  • Git(SourceTree)变基操作使用
  • 配置Sentinel 控制台
  • 全景环视AVM标定
  • 虚拟化 vs. 裸金属:K8s 部署环境架构与特性对比
  • CSS 滚动驱动动画与 @keyframes 新语法
  • 406. 根据身高重建队列
  • 毅速丨哪些金属材料在3D打印中应用最多
  • 【跟小嘉学 Rust 编程】三十三、Rust的Web开发框架之一: Actix-Web的基础
  • 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉 计算机竞赛
  • Java操作符
  • R语言入门看这一章就够了(上)
  • SQL查询优化---如何查询截取分析
  • C++之特殊类的设计
  • MATLAB中polyvalm函数用法