VUE使用benz-amr-recorder 实现解码、播放
安装npm install benz-amr-recorder引入const BenzAMRRecorder = require('benz-amr-recorder')使用<template><div class="wx-voice-div" @click="playVoice(objData)"></template>methods:{amrPlay(amr
·
安装
npm install benz-amr-recorder
引入
const BenzAMRRecorder = require('benz-amr-recorder')
使用
<template>
<div class="wx-voice-div" @click="playVoice(objData)">
</template>
methods:{
amrPlay(amr,obj){ //播放
this.$set(obj, 'amrPlaying', true)
amr.play()
},
amrStop(amr,val){// 停止(包括播放结束)
this.$set(obj, 'amrPlaying', false)
amr.stop()
},
playVoice(obj){
this.getMaterialOther(obj.repMediaId , obj.repName).then(url => {
this.$set(obj,'repUrl',url); //替换数据源中播放地址
this.handleAudio(val)
})
},
async getTempMaterialOther(repMediaId,fileName){ //获取后台返回的二进制文件
let url;
await this.ajax_get({url:this.$local+'crm/wxmaterial/tempMaterialOther', params:{
mediaId: repMediaId,
fileName: fileName
}}).then(response => {
url = window.URL.createObjectURL(new Blob([response])) //下载二进制文件到本地
})
return url
},
handleAudio(obj){
this.$set(obj,'amr',new BenzAMRRecorder())
let amr = obj.amr
let that = this
amr.initWithUrl(obj.repUrl).then(function() {
that.amrPlay(amr, obj)
that.$set(obj,'amrDuration',amr.getDuration())
})
amr.onEnded(function() {
that.$set(obj, 'amrPlaying', false)//播放完了
})
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)