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

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

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

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

在这里插入图片描述
播放录音调用 this.$refs.voiceInput.toPlay();即可:
在这里插入图片描述
在最终结果方法获取录音源文件:
在这里插入图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐