gpt4 book ai didi

javascript - Cordova 6.5.0 无法使用 cordova-plugin-media FAILED 重命名/存储/模拟/0/tmprecording-1489806941198.3gp 录制音频

转载 作者:搜寻专家 更新时间:2023-11-01 08:28:10 26 4
gpt4 key购买 nike

我正在尝试在 Cordova 6.5.0 上使用 cordova-plugin-media 录制音频。当我运行该方法时,它返回“OK”并调用成功回调函数,但是当此函数尝试获取文件时,该文件不存在。

如果我只指定文件名,则文件位于/storage/emulated/0/filename.mp3 但应用程序无法访问此路径。因此,当我指定使用 cordova.file.cacheDirectory 作为引用进行保存时,它会在后台引发错误,但在 javascript 界面中,它仍然会调用成功回调函数。

查看 logcat,我发现了这样的内容:

E 音频播放器:将/storage/emulated/0/tmprecording-1489806941198.3gp 重命名为/data/user/0/com.app/cache/recordedData-23-58cca65df12bf.mp3 失败

我一直在互联网上搜索,我发现与 Cordova 3.5.0 相关的类似错误是一个 BUG,但我使用的是 Cordova 6.5.0,BUG 是否仍然存在?

此外,我已经检查了应用程序的权限,并且已经授予了所有需要的权限。例如:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我已经尝试使用 cordova.file.dataDirectory 而不是 cordova.file.cacheDirectory,但我仍然没有成功。

下面是一段代码:

 audioCtx = new Media(
cordova.file.cacheDirectory + currentMediaFile,
uploadMediaCapture
);
//console.log("Recording audio.");
audioCtx.startRecord();

有人知道如何解决这个问题吗?

最佳答案

Android 无法将文件从/storage 移动到/data愚蠢的部分是,如果文件无法移动,moveFile 方法不会返回 false,因此仍会调用 Success 回调。

因此解决方案是将 cordova.file.cacheDirectory 替换为 cordova.file.externalCacheDirectory 或 cordova.file.externalDataDirectory

关于javascript - Cordova 6.5.0 无法使用 cordova-plugin-media FAILED 重命名/存储/模拟/0/tmprecording-1489806941198.3gp 录制音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42870171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com