收藏
回答

FileSystemManager.readFile返回arraybuffer如何使用?

最近在尝试使用腾讯云语音识别功能,没有小游戏sdk,只有node-sdk,于是研究了node-sdk里的代码,并且搬迁到小游戏里修改使用,发现nodesdk中有一个读取文件的代码:

let filePath = path.resolve('./demo/test.wav');
let data = fs.readFileSync(filePath);


在vscode控制面板显示:

<Buffer 52 49 46 46 c4 8a 02 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 01 00 80 3e 00 00 00 7d 00 00 04 00 10 00 64 61 74 61 a0 8a 02 00 f4 ff e2 ff cf ff ... >

把代码搬到小游戏里尝试修改文件读取:

var FileSystemManager=wx.getFileSystemManager()
        FileSystemManager.readFile({
            filePath:'http://tmp/wx94e072b434d2fc8c.o6zAJsyHdXvGN90HPlQnnfiHDcrc.Y4yukAMdE84K784475bbe6df4dac97ba05e257bf5518.durationTime=5005.wav',
            success:(res)=>{
                console.log(res.data)
                var buffer=Buffer.from(res.data)

            }
        })


读取的结果arraybuffer,尝试转换成var buffer=Buffer.from(res.data),打印出来:

和上面node版打印的也不一样。

跪求大佬指点一下,如何在小程序(小游戏)里读取文件,并且拿到和node中fs.readFileSync读取文件拿到的格式一样。

最后一次编辑于  2020-03-28
回答关注问题邀请回答
收藏

1 个回答

  • Forever
    Forever
    2020-03-30

    是这样的,两者皆为Buffer只不过它们的表示形式不同,就好像16进制和10进制的区别

    2020-03-30
    有用
    回复
登录 后发表内容
问题标签