语音接入功能
一听到要对接钉钉语音功能,就会想到微信语音对接过程,所以相关过程应该类似,于是去查看钉钉API文档:
钉钉API文档
先自己大概看一遍再去下手做:
1:首先跟微信一样使用钉钉相关的能力需要引入相关的jsAPI文件
<script src="https://g.alicdn.com/dingding/dingtalk-jsapi/2.7.13/dingtalk.open.js"></script>
2:使用钉钉来获取手机的底层能力需要鉴权(即dd.config),有些能力不需要,看自己需求,是否需要鉴权相关文档:能力鉴权列表
注意:所有JSAPI组件的调用,必须在dd.ready里面执行。
3:鉴权之前需要处理的事情:
前端进行鉴权之前,需要获取到参与鉴权的参数,包括url、nonceStr、agentId、timeStamp、corpId
后台需要
1)通过 appKey,appSecret从钉钉获取access_token;
appKey,appSecret从钉钉后台获取; 获取token后需对token做缓存处理;
2)通过access_token 获取 ticket
4:此时就可以开发语音部分功能,根据钉钉语音部分文档:https://ding-doc.dingtalk.com/doc#/dev/lpkhcc
5:有关钉钉后台配置部分
钉钉管理后台(https://open-dev.dingtalk.com/#/create-app)添加H5微应用
开始录音:
dd.device.audio.startRecord({
onSuccess : function () {//支持最长为300秒(包括)的音频录制,默认60秒(包括)。
},
onFail : function (err) {
}
});
停止录音:
dd.device.audio.stopRecord({
onSuccess : function(res){
res.mediaId; // 返回音频的MediaID,可用于本地播放和音频下载
res.duration; // 返回音频的时长,单位:秒
},
onFail : function (err) {
}
});
监听录音是否停止:
dd.device.audio.onRecordEnd({
onSuccess : function(res) {
res.mediaId; // 停止播放音频MediaID
res.duration; // 返回音频的时长,单位:秒
},
onFail : function (err) {
}
});
下载音频:
dd.device.audio.download({
mediaId : "@lATOCLhLfc46kUl8zlUmRlM",
onSuccess : function(res) {
res.localAudioId;
},
onFail : function (err) {
}
});
播放语音:
dd.device.audio.play({
localAudioId : "localAudioId",
onSuccess : function () {
},
onFail : function (err) {
}
});
暂停播放语音:
dd.device.audio.pause({
localAudioId : "localAudioId",
onSuccess : function() {
},
onFail : function(err) {
}
});
恢复暂停播放的语音:
dd.device.audio.resume({
localAudioId : "localAudioId",
onSuccess : function() {
},
onFail : function(err) {
}
});
停止播放语音:
dd.device.audio.stop({
localAudioId : "localAudioId",
onSuccess : function (res) {
},
onFail : function () {
}
});
监听播放自动停止:
dd.device.audio.onPlayEnd({
onSuccess : function (res) {
res.localAudioId;
},
onFail : function (err) {
}
});
语音转文字:
dd.device.audio.translateVoice({
mediaId : "@lATOCLhLfc46kUl8zlUmRlM",
duration : 5.0,
onSuccess : function (res) {
res.mediaId; // 转换的语音的mediaId
res.content; // 语音转换的文字内容
}
});