Native.js如何调用ios的文字转语音。
plus.ios.importClass("AVSpeechSynthesizer"); 之后该怎么写
- 发布:2015-04-01 17:08
- 更新:2020-02-16 14:48
- 阅读:11644
最佳回复
山川同学 (作者)
向IOS同事请教,已解决该问题。
var AVAudioSession = plus.ios.importClass("AVAudioSession");
var AVSpeechSynthesizer = plus.ios.importClass("AVSpeechSynthesizer");
var AVSpeechUtterance = plus.ios.importClass("AVSpeechUtterance");
var AVSpeechSynthesisVoice = plus.ios.import("AVSpeechSynthesisVoice");
AVAudioSession.sharedInstance().setCategoryerror("AVAudioSessionCategoryPlayback",null);
var sppech = new AVSpeechSynthesizer();
var utterance = AVSpeechUtterance.speechUtteranceWithString("共产主义接班人");
utterance.plusSetAttribute("rate",0.3);
sppech.speakUtterance(utterance);
//停止
sppech.stopSpeakingAtBoundary(0)
//暂停
sppech.pauseSpeakingAtBoundary(0);
//继续
sppech.continueSpeaking(0);
plus.ios.deleteObject(voice);
plus.ios.deleteObject(utterance);
plus.ios.deleteObject(sppech);
plus.ios.deleteObject(AVAudioSession);
需iOS7.0及以上系统支持此功能
Android平台参考http://ask.dcloud.net.cn/question/6473
首先确认在HBuilder中真机运行是否存在问题?
如果提交云端打包需要确认manifest.json文件在“模块权限配置”中选择了“Audio(音频)”模块,或者在plus->distribute->apple->frameworks节点下添加要引用的“AVFoundation.framework”。
不知道如何添加 监听事件 delegate 会闪退
https://www.jianshu.com/p/acd57725ba4d
var delegate = plus.ios.implements("AVSpeechSynthesizerDelegate",{"speechSynthesizer:didFinishSpeechUtterance:":function(){
console.log('info:'+arguments.length);
}});
sppech.plusSetAttribute('delegate', delegate);
请问怎样在后台也能继续播报? 切换到后台后,语音播报就停止了。manifest里加"UIBackgroundModes":["audio"] 没用
-
需要些原生语言实现IOS的文字转语音后台播放。我下面写出来
var AVAudioSession = plus.ios.importClass("AVAudioSession"),
AVAudioSessionObj = AVAudioSession.sharedInstance();
AVAudioSessionObj.setCategoryerror('AVAudioSessionCategoryPlayback',null);
AVAudioSessionObj.setActiveerror('YES', null);
var AVSpeechSynthesizer = plus.ios.importClass("AVSpeechSynthesizer");
var AVSpeechUtterance = plus.ios.importClass("AVSpeechUtterance");
var AVSpeechSynthesisVoice = plus.ios.import("AVSpeechSynthesisVoice");
var speech = new AVSpeechSynthesizer();
var voice = AVSpeechSynthesisVoice.voiceWithLanguage("zh-CN");
var utterance = AVSpeechUtterance.speechUtteranceWithString(text);
//utterance.plusSetAttribute("rate",30.1);
utterance.setVoice(voice);
speech.speakUtterance(utterance);2018-07-20 18:01
山川同学 (作者)
语速设置找不到一个合适的值,有人遇到过吗?
2015-04-01 20:34
SkyGrass
没声音啊?
2016-01-12 23:01
谷震平
麻烦能将环境配置给一份吗? 直接用源码有问题。
2016-06-10 18:43
Viccy
并没有声音
2017-04-26 17:09
我已无力吐槽
没有声音是怎么回事
2017-08-23 17:25
骑上我的小摩托
并没有声音
2017-12-25 14:52
8***@qq.com
怎么监听播放完毕
2018-04-26 20:53
8***@qq.com
可以,有声音,就是不知道怎么设置播放语速和声音
2018-06-04 10:23
JSail
iOS怎么实现在后台播放
2019-05-06 15:50
eachann
回复 山川同学: 不是调不了,是语速那个写法没效果吧
2019-09-17 10:20
5***@qq.com
回复 山川同学: 请问你语速的问题最后解决了吗?
2019-12-09 11:37