收藏
回答

如何将小程序wxfile://tmp.mp3文件转成base64编码的语音数据?

小程序打开手机录音功能,录音结束,生成的是wxfile://tmp-----mp3格式文件。

请教各位如何将小程序wxfile://tmp.mp3文件转成base64编码的语音数据。

他的解决逻辑是什么流程?

具体代码应该怎么写?

回答关注问题邀请回答
收藏

1 个回答

  • 郑钱花
    郑钱花
    2023-11-27

    试试

    FileSystemManager.readFile


    2023-11-27
    有用
    回复 5
    • 陶由全
      陶由全
      2023-11-28
      //将录音文件wxfile进行base64转码工作


      export default async function({event, data}) {
      let jiema=$w.page.dataset.state.luyintext;
       //此时的jiema变量值已经是:wxfile://tmp----.mp3


      // 获取文件管理器
      const fs = wx.getFileSystemManager();
      // 读取文件内容
      fs.readFile({
        filePath:jiema, 
        encoding: 'base64',           //设置编码格式为base64
        success(res) {
          //获取到文件内容的base64编码
          const base64Data = res.data;
          console.log("base64Data数据值:"+base64Data);
        }
      });
      }




      代码我是这样写的,输出的值:
      GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQRChYECGFOAZwH/////////FUmpZpkq17GDD0JATYCGQ2hyb21lV0GGQ2hyb21lFlSua7+uvdeBAXPFh09w+ln19XqDgQKGhkFfT1BVU2Oik09wdXNIZWFkAQEAAIC7AAAAAADhjbWERzuAAJ+BAWJkgSAfQ7Z1Af/////////ngQCjQcCBAACA+4Oltn/8idGlqRede9YD6Malq0y0jCADwWv0rD1rSiVrj/kREuTXO1boi8pl7JP7nr


      输出的这个值,进行测试,这个值不是录音音频base64可用值

      是不是意味着,需要提取wxfile://tmp----.mp3的实际地址值,
      2023-11-28
      回复
    • 郑钱花
      郑钱花
      2023-11-29回复陶由全
      实际地址值无法提取,base64也能转。只是你说不可用,那就不懂了,那是你门业务上的事
      2023-11-29
      回复
    • 陶由全
      陶由全
      2023-11-29回复郑钱花
      目前我们这边也在测试,腾讯云语音识别(一句话识别的功能,入参的时候需要wxfile://tmp音频文件转成base64编码的语音数据),根据您的推荐:coconst fs = wx.getFileSystemManager();我们用这个进行base64转码,目前转出的结果做入参,正在排差查是代码没写对,转成结果错误,还是其它问题。谢谢你的指点,多沟通交流 哦
      2023-11-29
      回复
    • 郑钱花
      郑钱花
      2023-11-29回复陶由全
      刚去看了文档,也许你路没选对。应该走示例1
      小程序的文件毕竟不像网页一样,它是临时文件路径,再通过小程序fs转成base64去用的话,事实证明行不通。建议你把录音文件先上传后拿到url去用示例1的方式试试,如果通了,就更加佐证你base64的方案不可行
      2023-11-29
      回复
    • 郑钱花
      郑钱花
      2023-11-29回复陶由全
      而且最佳实践里有小程序的解决方案,你看看会有帮助。不能用网页思维去开发小程序。
      2023-11-29
      回复
登录 后发表内容