我正在尝试使用cordova插件媒体捕获来捕获视频,并使用cordova-plugin文件传输将其上传。
以下是媒体捕获呼叫:
navigator.device.capture.captureVideo(
app.view.controller.success,
app.view.controller.error,
{limit: 1}
);
成功回调:
app.view.controller.success = function(event)
{
var options = new FileUploadOptions();
options.fileKey = 'data[Request][video]';
options.fileName = event[0].name;
options.mimeType = event[0].type;
options.chunkedMode = false;
var transfer = new FileTransfer();
transfer.upload(
event[0].localURL,
app.view.uploadurl,
app.view.controller.uploaded,
app.view.controller.error,
options,
true
);
};
目前,上传和错误回调只执行参数的console.log()。
问题是它在android 5.1上运行良好,但在android 6.0上给我一个EAESS错误(transfer.upload调用)。错误代码1,无法读取文件)。
我可以确认视频已经录制,它显示在图库应用程序中。但是文件传输插件无法读取。
有人知道线索吗?
确保已对uri:app.view.uploadurl
进行编码
如下所示:encodeURI("http://some.server.com/upload.php")
根据这两个github问题,如果不同时使用MANAGE_EXTERNAL_STORAGE并运行从播放商店中排除
https://github.com/apache/cordova-plugin-file/issues/426
https://github.com/apache/cordova-plugin-media-capture/issues/125