uniapp 安卓 苹果 实现文字转语言

uniapp 安卓 苹果 实现文字转语言

注意:
1:首先需要判断设备类型是安卓还是苹果,从而调用不同的方法;
2:安卓文字转语言是需要转码,否则能听见声音但不知道她说啥!!😩
3:封装安卓和iOS转语音时一定要把音量设置大一点😩😩😩😩

步骤
1:封装安卓文字转码

changeEnCode(str) {
	let res = []
	for (let i = 0; i < str.length; i++) {
		// 这个不是正常的encodeUnicode 颠倒了大小端的位置  
		res[i] = ("00" + str.charCodeAt(i).toString(16)).slice(-2) + ("00" + str.charCodeAt(i).toString(16)).slice(-
			4, -2)
	}
	let strCode = "\\u" + res.join("\\u")
	strCode = strCode.replace(/\\/g, "%")
	return unescape(strCode)
},

2:封装安卓文字转语音方法

AndriodSpeechToVoice: function(text) {
 	var main = plus.android.runtimeMainActivity();
 	var SpeechUtility = plus.android.importClass('com.iflytek.cloud.SpeechUtility');
 	SpeechUtility.createUtility(main, 'appid=5c2c6d5f');
 	var SynthesizerPlayer = plus.android.importClass('com.iflytek.cloud.SpeechSynthesizer');
 	var play = SynthesizerPlayer.createSynthesizer(main, null);
 	play.startSpeaking(this.changeEnCode(text), null); //这里要用到上一步封装的文字转码
 },

3:封装ios文字转语言的方法(ios不需要转码)

iosSpeechToVoice: function(text) {
 	var AVSpeechSynthesizer = plus.ios.importClass('AVSpeechSynthesizer');
 	var AVSpeechUtterance = plus.ios.importClass('AVSpeechUtterance');
 	var AVSpeechSynthesisVoice = plus.ios.import('AVSpeechSynthesisVoice');
 	var sppech = new AVSpeechSynthesizer();
 	var voice = AVSpeechSynthesisVoice.voiceWithLanguage('zh-CN');
 	var utterance = AVSpeechUtterance.speechUtteranceWithString(text);
 	// utterance.plusSetAttribute("rate",30.1);
 	utterance.setVoice(voice);
 	sppech.speakUtterance(utterance);
 	//停止
 	sppech.stopSpeakingAtBoundary(0);
 	//暂停
 	sppech.pauseSpeakingAtBoundary(90);
 	//继续
 	sppech.continueSpeaking(90);
 	plus.ios.deleteObject(voice);
 	plus.ios.deleteObject(utterance);
 	plus.ios.deleteObject(sppech);
 },

3:封装统一调用的方法(这里要判断设备的类型,从而调用安卓或ios即可)

say(text) {
 	let _this = this
 	uni.getSystemInfo({
 		success: res => {
 			console.log(JSON.stringify(res.platform));
 			if (res.platform === 'android') {
 				_this.AndriodSpeechToVoice(text); //是安卓
 			} else if (res.platform === 'ios') {
 				_this.iosSpeechToVoice(text); //ios
 			}
 		}
 	});
 },

4:使用:
this.say(“你想转语言的文字”) 执行封装好的say()方法即可。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
抱歉,uniapp是基于Vue实现的跨平台开发框架,不支持直接打包成苹果apk,因为苹果设备的应用安装包文件格式是.ipa。如果你想要在苹果设备上使用uniapp开发的应用,需要将uniapp项目换成iOS原生应用。换的具体步骤如下: 1. 在Mac电脑上安装Xcode,可以在App Store中下载安装。 2. 在Xcode中创建一个新的工程,并选择“Single View App”模板。 3. 将uniapp项目中的“HBuilder-Hello”文件夹复制到Xcode工程的根目录下。 4. 在Xcode工程中选择“Build Settings”选项卡,在搜索框中输入“Header Search Paths”,并添加uniapp项目中的“HBuilder-Hello”文件夹路径。 5. 在Xcode工程中选择“Build Phases”选项卡,在“Link Binary With Libraries”中添加“libWeex.a”和“libWeexFramework.a”。 6. 在Xcode工程中选择“Build Settings”选项卡,在搜索框中输入“Other Linker Flags”,并添加“-ObjC”和“-all_load”。 7. 在Xcode工程中选择“Build Settings”选项卡,在搜索框中输入“Enable Bitcode”,并将其设置为NO。 8. 在Xcode工程中选择“General”选项卡,设置“Bundle Identifier”、“Team”和“Signing”等信息。 9. 在Xcode工程中选择“Product”菜单,选择“Archive”选项,等待编译完成。 10. 编译完成后,进入“Organizer”界面,选择“Export”选项,选择“Ad Hoc”或“App Store”等方式进行导出。 以上就是将uniapp项目换成iOS原生应用的所有步骤,希望能够对你有所帮助。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值