收藏
回答

请教:云函数中调用百度语音合成接口,无法将文件保存到云存储中的问题。

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 需求 客户端 wx5cf497047ce068b2 2.4.2

使用小程序云开发平台,云函数中调用百度语音合成接口成功后,使用cloud.uploadFile无法将文件保存到云存储中,应如何解决呢?谢谢!

result.data可以获取到,Buffer类型。

代码如下:

client.text2audio('百度语音合成测试', { spd: 5, per: 4 }).then(function (result) {
        if (result.data) {
         
          cloud.uploadFile({
            cloudPath: 'tts/tts.mpVoice.mp3',
            fileContent: result.data,
          })
        else {
          // 服务发生错误
          console.log(result);
        }
      }, function (e) {
        // 发生网络错误
        console.log(e)
      });



最后一次编辑于  2018-12-18  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 邓坤力
    邓坤力
    2018-12-19

    需要将结果转换为 fs.ReadStream https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/storage/uploadFile.html

    2018-12-19
    赞同
    回复 1
    • 一直在努力
      一直在努力
      2018-12-19

      解决了,我这这样写就可以了,而且不用转换,buffer类型可以直接用。

      const result = await client.text2audio('百度语音合成测试', { spd: 5, per: 4 });

       

      return await cloud.uploadFile({

              cloudPath: 'tts/tts.mpVoice.mp3',

              fileContent: result.data,

            })

      这样就没问题了,谢谢!


      2018-12-19
      回复
  • 一直在努力
    一直在努力
    2018-12-19

    解决了,我这这样写就可以了,而且不用转换,buffer类型可以直接用。

    const result = await client.text2audio('百度语音合成测试', { spd: 5, per: 4 });
     
    return await cloud.uploadFile({
            cloudPath: 'tts/tts.mpVoice.mp3',
            fileContent: result.data,
          })

    这样就没问题了,谢谢!

    2018-12-19
    赞同
    回复