前提条件
1. 完成 集成 SDK。
2. 完成 密钥 申请。
设置标签页
"pages/index/index.wxml"
// 设置标签页<button onlongpress="ontouchstart" ontouchend="ontouchend">{{ btnText }}</button>
SDK 初始化
let plugin = requirePlugin("myPlugin");let manager = null;
设置生命周期回调函数
Page({data: {resps: [],btnText: '长按录制',},onShow: function() {// Do something when page show.},})
固定密钥接入
创建 getSoeRecorderManager 对象,使用 SecretId,SecretKey 进行签名认证。固定密钥适用于前端调试,若使用此格式,请避免泄露密钥。getSoeRecorderManager 获取的对象是唯一的,不同的界面需要重新创建。
注意:
建议用户使用子账号密钥 + 环境变量的方式调用 SDK,提高 SDK 使用的安全性。为子账号授权时,请遵循 最小权限指引,防止泄漏其他资源。
如果您一定要使用永久密钥,建议遵循最小权限指引 对永久密钥的权限范围进行限制。
manager = plugin.getSoeRecorderManager({SecretId: 'your secretid', // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考https://cloud.tencent.com/document/product/598/37140SecretKey: 'your secretkey', // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参考https://cloud.tencent.com/document/product/598/37140});
临时密钥接入
manager = plugin.getSoeRecorderManager({getAuthorization: function (callback) {wx.request({url: 'https://example.com/server/getTmpIdAndKey', //服务端地址method: 'POST',data: {},success: data => {callback({Token: data.Credentials.Token,TmpSecretId: data.Credentials.TmpSecretId,TmpSecretKey: data.Credentials.TmpSecretKey})}});}});
临时密钥接入(微信云开发)
if (!wx.cloud) {console.error('请使用 2.2.3 或以上的基础库以使用云能力 。。')} else {wx.cloud.init({traceUser: true,})}manager = plugin.getSoeRecorderManager({getAuthorization: function (callback) {wx.cloud.callFunction({name: 'getAuthorization',data: {},success: data => {console.log('test:', data)callback({Token: data.result.Credentials.Token,TmpSecretId: data.result.Credentials.TmpSecretId,TmpSecretKey: data.result.Credentials.TmpSecretKey})}})}})
SDK 使用方法
设置监听函数
// 开始录音manager.onStart(() => {this.setData({resps: [],btnText: '录制中'})})//停止录音manager.onStop((res) => {console.log(res.tempFilePath); //音频数据this.setData({btnText: '长按录制'})})// 回调结果manager.onResponse((res) => {console.log(res)})// 最终结果manager.onSuccess((res) => {console.log(res)});// 失败回调manager.onError((res) => {console.log(res)})
设置评测参数
//设置请求参数并进行录音评测manager.start({content: 'about'})
使用 stop 函数停止评测
//停止录音manager.stop()
集成使用
"pages/index/index.wxml"
// 设置标签页<button onlongpress="ontouchstart" ontouchend="ontouchend">{{ btnText }}</button>
"pages/index/index.js"
let manager = null;let plugin = requirePlugin("myPlugin");// 设置生命周期回调函数Page({data: {resps: [],btnText: '长按录制',},onShow: function () {// 设置初始化初始化,具体参考https://cloud.tencent.com/document/product/884/84111#434bdd99-20df-4763-9a51-00cf0b6e46dcif (!wx.cloud) {console.error('请使用 2.2.3 或以上的基础库以使用云能力 。。')} else {wx.cloud.init({traceUser: true,})}manager = plugin.getSoeRecorderManager({getAuthorization: function (callback) {wx.cloud.callFunction({name: 'getAuthorization',data: {},success: data => {console.log('test:', data)callback({Token: data.result.Credentials.Token,TmpSecretId: data.result.Credentials.TmpSecretId,TmpSecretKey: data.result.Credentials.TmpSecretKey})}})}})//设置监听函数manager.onStart(() => {// 改变btnText的值,提示录音状态this.setData({resps: [],btnText: '录制中'})})manager.onStop((res) => {console.log(res.tempFilePath); //音频数据this.setData({btnText: '长按录制'})})// 回调结果manager.onResponse((res) => {console.log(res)})// 最终结果manager.onSuccess((res) => {console.log(res)});manager.onError((res) => {console.log(res)})},// 对应pages/index/index.wxml中的ontouchstart,触摸开始评测ontouchstart: function () {console.log('ontouchstart');manager.start({content: "about",})},// 对应pages/index/index.wxml中的ontouchend,停止触摸结束评测ontouchend: function () {console.log('ontouchEnd');manager.stop()},})
参数说明
getSoeRecorderManager 说明
参数 | 类型 | 是否必填 | 默认值 | 说明 |
SecretId | String | 否 | 无 | 用户 SecretId |
SecretKey | String | 否 | 无 | 用户 SecretKey |
getAuthorization | function | 否 | 无 |
start(options) 说明
属性 | 类型 | 必填 | 默认值 | 说明 |
content | String | 是 | 无 | |
evalMode | Number | 否 | 0 | 评测模式 0:单词模式
1:句子模式
2:段落模式
3:自由说模式
4:单词音素纠错模式
5:情景评测模式
6:句子多分支评测模式
7:单词实时评测模式
8:拼音评测模式 |
duration | Number | 否 | 60000 | 指定录音的时长,单位 ms,最大为300000(需要使用段落模式或自由说模式),在到达 duration 后会自动停止录音。 |
scoreCoeff | Number | 否 | 1.5 | |
serverType | Number | 否 | 0 | |
textMode | Number | 否 | 0 | |
soeAppId | String | 否 | 无 | |
sentenceInfiEnabled | Number | 否 | 0 | 输出断句中间结果标识(需要使用1.2.16及以上版本才可以使用该字段) 0:不输出,1:输出 通过设置该参数可以在评估过程中的分片传输请求中,返回已经评估断句的中间结果,中间结果可用于客户端 UI 更新,输出结果为 TransmitOralProcess 请求返回结果 SentenceInfoSet 字段 |
keyword | String | 否 | 无 | |
cosBuketUrl | String | 否 | 无 | 音频存储模式,此参数已废弃,无需设置; 注意: 有存储需求的用户建议自行存储至腾讯云 COS 对象存储使用。 |