更新记录
1.0.2(2021-09-28)
iOS版增加stop方法,支持停止播放。
1.0.1(2021-06-23)
修复Android可能播报失败的问题
1.0.0(2021-02-05)
新鲜出炉
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:6.0 - 11.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:10 - 14 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
原生TTS
调用方式
const tts = uni.requireNativePlugin("nrb-tts-plugin")
tts && tts.init({ "lang":"ZH", "country":"CN" }, res => {
if(res.success == 0){
console.log('初始化TTS成功')
}
})
tts && tts.speak('测试语音播报', {}, e => {
console.log(e)
})
//停止播放
tts && tts.stop()
init参数及回调
Android:
如果使用默认参数,传{}
参数格式:{"lang":"zh","country":"CN"} 详见Local定义: /**
* Construct a locale from language and country.
* This constructor normalizes the language value to lowercase and
* the country value to uppercase.
* <p>
* <b>Note:</b>
* <ul>
* <li>ISO 639 is not a stable standard; some of the language codes it defines
* (specifically "iw", "ji", and "in") have changed. This constructor accepts both the
* old codes ("iw", "ji", and "in") and the new codes ("he", "yi", and "id"), but all other
* API on Locale will return only the OLD codes.
* <li>For backward compatibility reasons, this constructor does not make
* any syntactic checks on the input.
* </ul>
*
* @param language An ISO 639 alpha-2 or alpha-3 language code, or a language subtag
* up to 8 characters in length. See the <code>Locale</code> class description about
* valid language values.
* @param country An ISO 3166 alpha-2 country code or a UN M.49 numeric-3 area code.
* See the <code>Locale</code> class description about valid country values.
* @exception NullPointerException thrown if either argument is null.
*/
lang:language,默认:zh country:country,默认CN
回调结果:{"success":0,"errmsg":"出错"} success:0:成功;其他:失败,参考TextToSpeech错误码
iOS:
参数:无,传{}
回调结果:{"success":0,"errmsg":""} success:0:成功;iOS只会回调成功
errmsg:错误信息
speak参数及回调
Android:
播放参数:{"pitch":1.0,"speechRate":1.0,"queueMode":1,"utteranceId":""}参考TextToSpeech参数,使用默认播放参数,传{} pitch:默认1.0f speechRate:默认1.0f queueMode:默认TextToSpeech.QUEUE_ADD utteranceId:默认长度为10的随机字符串
回调结果:{"utteranceId":"","type":"onStart","params":{}} 播放进度,参考UtteranceProgressListener,一次播报会回调多次 utteranceId:speak传入的id type:UtteranceProgressListener回调的方法名,如:onStart,onStop,onDone等 params:UtteranceProgressListener回调的参数集,如:onStop时,为{"interrupted":true}。onError时,为{"errorCode":-1}
iOS:
播放参数:{"rate":0.5,"lang":"zh-CN","volume":1},参考AVSpeechUtterance里的参数说明,使用默认播放参数,传{} rate:播放速度,默认0.5 lang:播放声音来源,默认zh-CN volume:音量,默认1
回调结果:{"msg":msg,"type":type,"params":params}播放进度,参考AVSpeechSynthesizerDelegate,一次播报会回调多次 msg:speak传入的播放字符串 type:AVSpeechSynthesizerDelegate的方法名 params:AVSpeechSynthesizerDelegate回调的其他参数集