跟沙箱目录应该没关系,先看下保存后的音频文件格式是否正确,如m4a、mp3等等,可以再试下下面demo方案获取到沙箱路径后 =\> 调用picker.save =\> 获取到url进行copy保存,localPath参数为沙箱路径。export function saveFromDPicker(localPath: string) { try { let audioSaveOptions = new picker.AudioSaveOptions(); audioSaveOptions.newFileNames = ['AudioViewPicker01.mp3']; let audioPicker = new picker.AudioViewPicker(context); audioPicker.save(audioSaveOptions).then((audioSaveResult: Array<string>) => { let uri = audioSaveResult[0]; copyFileToCommon(localPath, uri) }).catch((err: BusinessError) => { console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('AudioViewPicker failed with err: ' + JSON.stringify(err)); } } // 拷贝文件,从沙箱拷贝到公共目录 export function copyFileToCommon(src: string, dst: string) { try { let file = fs.openSync(src, fs.OpenMode.READ_ONLY); let file2 = fs.openSync(dst, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); //先创建有读写权限的文件,再把不可读写的文件复制过来 fs.copyFileSync(file.fd, file2.fd); } catch (e) { console.error("tag copy error") } }
跟沙箱目录应该没关系,先看下保存后的音频文件格式是否正确,如m4a、mp3等等,可以再试下下面demo方案获取到沙箱路径后 =\> 调用picker.save =\> 获取到url进行copy保存,localPath参数为沙箱路径。