InnerAudioContext播放本地同名更新覆盖后的录音文件出奇怪错误?
发布于 5 年前 作者 guiying46 5450 次浏览 来自 问答

代码片段见此

https://developers.weixin.qq.com/s/gp28Y9ml7tmJ

基础库版本号:2.1.4

微信版本号:7.0.20

手机:安卓版本10


业务逻辑:

1,用户录制音频,先保存到本地:filePath = wx.env.USER_DATA_PATH + ‘/’ + fileName;

2,用户试听后可重新录制,文件名与前一次录制的相同,saveFile覆盖原录制的MP3音频文件

fileManager = wx.getFileSystemManager

fileManager.saveFile

3,试听新的录音(问题来了)


真机测试问题描述:

进行3次录制:A次、B次、C次,都保存为同一个文件:0.MP3

A次录制后,点击播放,正确播放了A次录制的声音;再次点击播放,依然正确;

B次录制后,点击播放,正确播放了B次录制的声音;再次点击播放,不正确,播放的是A次录制的声音;

C次录制后,点击播放,正确播放了C次录制的声音;再次点击播放,不正确,播放的是A次录制的声音。

也就是说,只有第一次录制生成的本地文件,无论多少次播放,都是正确的,之后新数据覆盖原本地文件后,只有第一次播放正常,之后都会播放第一次录制的音频文件。

我在保存新录音文件之前,用fileManager.unlink删除文件后保存为同名文件还是一样的情况,但因为业务需要,必须要同一item的录音文件在本地只有一个,名称保持不变。

请问这个问题怎么解决?

是API调用出错?还是小程序录音文件缓存机制的Bug?


主要涉及的API:

fileManager = wx.getFileSystemManager()

fileManager.unlink()

fileManager.saveFile()

player = wx.createInnerAudioContext()

player.play()

回到顶部