我一直在与cordova的媒体捕获插件作斗争。我只是想测试一下我能不能上传视频文件。图片工作完美,但当我尝试视频时,它崩溃了:
navigator.device.capture.captureVideo(captureSuccess, captureError, { duration: 8 });
视频应用程序在录制0秒后打开并关闭。抛出的错误是3,消息是"取消"。我没有以任何方式手动取消它,并在多个设备上进行了尝试。我找不到关于这个错误的任何信息,这简直要把我逼疯了。
这是完整的代码(这是标准示例):
var captureSuccess = function(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
// do something interesting with the file
}
};
// capture error callback
var captureError = function(error) {
console.log(error);
};
// start video capture
navigator.device.capture.captureVideo(captureSuccess, captureError, { duration: 8 });
能否粘贴正在调用captureSuccess()
的函数?看起来像是缺少参数的错误。您应该调用getPicture
,插入video
选项。看看我下面的代码使用相同的插件(w/Ionic):
$scope.chooseVideo = function() {
var options = {
quality: 100,
destinationType: Camera.DestinationType.FILE_URI,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
mediaType: Camera.MediaType.VIDEO,
saveToPhotoAlbum: false
};
$cordovaCamera.getPicture(options).then(function(videoData){
// do what you want with videoData
});
}