问题描述
我正在努力使用cordova为Android 10上的消息传递应用程序创建录音机。简单地说,我无法读取预先安装的录音机录制的文件。
调用navigator.device.capture.captureAudio
并允许存储权限后,弹出录音机,录制音频,提交后返回MediaFile
保存在recorders文件夹 >.
如果我试图读取文件,但不知何故它弹出 FileError 代码为 1,这意味着 NOT_FOUND_ERR - 这不是真的,文件存在并且我有存储权限。我过去一直在处理这个问题,这段代码可以正常工作,但经过一段时间和多次重置 Android 平台后,它不再工作了。
是什么阻止我从另一个应用程序读取文件? (我是原生移动应用的新手)。
非常感谢。
使用的版本: [email protected]、[email protected]、[email protected]、cordova-plugin-file@6.0.2
const INTERNAL_ERR = {
code: 0,message: 'The microphone Failed to capture sound.',};
return new Promise((resolve,reject) => {
navigator.device.capture.captureAudio(
([mediaFile]) => {
console.log(mediaFile); // *1
window.resolveLocalFileSystemURL(
mediaFile.localURL,// using cdvfile url
fileEntry => {
console.log(fileEntry); // *2
fileEntry.file(
file => {
const reader = new FileReader();
reader.onloadend = e => {
if (e.target.result) {
resolve(e.target.result);
} else {
reject(INTERNAL_ERR);
}
};
reader.onerror = e => console.error(e); // *3
reader.readAsDataURL(file);
},error => reject(INTERNAL_ERR)
);
},error => reject(INTERNAL_ERR)
);
},error => reject(error),{ limit: 1,duration: 60,}
);
}
从cordova-plugin-media-capture 创建MediaFile - console.log *1
MediaFile {name: "Voice 020.m4a",localURL: "cdvfile://localhost/persistent/Voice%20Recorder/Voice%20020.m4a",type: "audio/mpeg",lastModified: null,lastModifiedDate: 1612256449000,…}
end: 0
fullPath: "file:///storage/emulated/0/Voice%20Recorder/Voice%20020.m4a"
lastModified: null
lastModifiedDate: 1612256449000
localURL: "cdvfile://localhost/persistent/Voice%20Recorder/Voice%20020.m4a"
name: "Voice 020.m4a"
size: 90812
start: 0
type: "audio/mpeg"
创建的 FileEntry - console.log *2
FileEntry {isFile: true,isDirectory: false,name: "Voice 020.m4a",fullPath: "/Voice Recorder/Voice 020.m4a",filesystem: FileSystem,…}
filesystem: FileSystem
name: "persistent"
root: DirectoryEntry {isFile: false,isDirectory: true,name: "",fullPath: "/",…}
fullPath: "/Voice Recorder/Voice 020.m4a"
isDirectory: false
isFile: true
name: "Voice 020.m4a"
nativeURL: "file:///storage/emulated/0/Voice%20Recorder/Voice%20020.m4a"
弹出事件 - console.error *3
ProgressEvent {type: "error",bubbles: false,cancelBubble: false,cancelable: false,lengthComputable: false,…}
target: FileReader
_error: FileError
code: 1
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)