讯飞实时语音读写,并播放录音,上传录音文件

需求描述:使用讯飞实现录音实时识别,并且可以播放以及上传。

  1. 首先想到使用到这个组件voice-input-button2,他集成了讯飞语音读写的功能 ,插件地址:https://github.com/ferrinweb/voice-input-button2
  2. 根据文档集成成功后,可以实时语音读写,但是无法获取到语音文件,不能播放和上传录音文件
  3. 解决办法:改造插件,进行二次开发

改造过程(增加保存文件流,录音播放文件变量,增加播放的方法):

  1. 首先将voice-input-button2下载到本地,下载后目录如下:讯飞实时语音读写,并播放录音,上传录音文件_第1张图片
  2. lib文件下所有文件和utils下文件copy到本地项目,可根据自己项目自定义命名,我把lib下文件和utils文件放到项目的components的voiceInputButton里,如下:讯飞实时语音读写,并播放录音,上传录音文件_第2张图片
  3. 改造recorderindex.js文件
    增加录音源文件、播放录音对象,如下:
    讯飞实时语音读写,并播放录音,上传录音文件_第3张图片
    在实例化的时候获取文件流,保存在本地
    讯飞实时语音读写,并播放录音,上传录音文件_第4张图片
    增加播放方法:
    讯飞实时语音读写,并播放录音,上传录音文件_第5张图片
    录音停止时,停止缓存文件流:
    讯飞实时语音读写,并播放录音,上传录音文件_第6张图片
    voice-input-button.vue中增加播放的方法:
    讯飞实时语音读写,并播放录音,上传录音文件_第7张图片
    引入的具体实现:
    组件引入:
    讯飞实时语音读写,并播放录音,上传录音文件_第8张图片

讯飞实时语音读写,并播放录音,上传录音文件_第9张图片
播放录音调用 this.$refs.voiceInput.toPlay();即可:
讯飞实时语音读写,并播放录音,上传录音文件_第10张图片
在最终结果方法获取录音源文件:
讯飞实时语音读写,并播放录音,上传录音文件_第11张图片

你可能感兴趣的:(vue.js,前端)