Angularjs 视频捕获不显示在手机的“我的多媒体资料”中
我正在使用ng cordova的插件捕获从手机上捕获离子框架内的()视频Angularjs 视频捕获不显示在手机的“我的多媒体资料”中,angularjs,cordova,ionic-framework,cordova-media-plugin,Angularjs,Cordova,Ionic Framework,Cordova Media Plugin,我正在使用ng cordova的插件捕获从手机上捕获离子框架内的()视频 $scope.captureVideo = function() { var options = { limit: 1, duration: 10 }; $cordovaCapture.captureVideo(options).then(function(videoData) { var i, path, len; for (i = 0, len = videoData.leng
$scope.captureVideo = function() {
var options = { limit: 1, duration: 10 };
$cordovaCapture.captureVideo(options).then(function(videoData) {
var i, path, len;
for (i = 0, len = videoData.length; i < len; i += 1) {
path = videoData[i].fullPath;
console.log("Path of the video is = " + path.toString());
}
}, function(err) {
// An error occurred. Show a message to the user
});
}
上面删除文件的代码导致错误代码:6。不允许修改显然,从4.4版开始,我们无法从MICRO SD卡中删除和写入文件。它现在是只读的。。而且,当用户从库中删除文件时,该文件将无法用于项目。这是我想到的 我将视频文件复制到cordova的外部目录,在那里我可以在需要时读取文件并根据需要删除。需要的插件包括
cordova文件插件
和cordova插件文件传输
.controller('yourCtrl', function($scope,$cordovaCapture,$sce,$cordovaFile, $cordovaFileTransfer, $timeout) {
$cordovaCapture.captureVideo(options).then(function(videoData) {
console.log(JSON.stringify(videoData[0]));
console.log(cordova.file.externalDataDirectory);
$cordovaFileTransfer.download(videoData[0].fullPath, cordova.file.externalDataDirectory + 'my-video.mp4', {}, true).then(
function(result)
{
console.log('success: '+ result);
},
function (error)
{
console.log('error: '+ JSON.stringify(error));
},function (progress) {
$timeout(function () {
$scope.downloadProgress = (progress.loaded / progress.total) * 100;
});
},false);
$scope.clipSrc = $sce.trustAsResourceUrl(videoData[0].fullPath);
//$scope.videoSrc = videoData[0].fullPath;
}, function(err) {
alert('Err: <br />'+ JSON.stringify(videoData));
});
//delete the file according to filename.
$scope.deleteVideo= function(){
$cordovaFile.removeFile(cordova.file.externalDataDirectory, "my-video.mp4")
.then(function (result) {
console.log('Success: deleting videoData file' + JSON.stringify(result));
}, function (err) {
console.log('Error: deleting videoData file' + JSON.stringify(err));
});
}
})
.controller('yourCtrl',函数($scope、$cordovaCapture、$sce、$cordovaFile、$cordovaFileTransfer、$timeout){
$cordovaCapture.captureVideo(选项)。然后(函数(视频数据){
log(JSON.stringify(videoData[0]);
log(cordova.file.externalDataDirectory);
$cordovaFileTransfer.download(视频数据[0]。完整路径,cordova.file.externalDataDirectory+'my video.mp4',{},true)。然后(
功能(结果)
{
console.log('success:'+结果);
},
函数(错误)
{
log('error:'+JSON.stringify(error));
},职能(进度){
$timeout(函数(){
$scope.downloadProgress=(progress.loaded/progress.total)*100;
});
},假);
$scope.clipSrc=$sce.trustAsResourceUrl(视频数据[0]。完整路径);
//$scope.videoSrc=videoData[0]。完整路径;
},函数(err){
警报('Err:
'+JSON.stringify(videoData));
});
//根据文件名删除文件。
$scope.deleteVideo=函数(){
$cordovaFile.removeFile(cordova.file.externalDataDirectory,“my video.mp4”)
.然后(函数(结果){
log('Success:删除视频数据文件'+JSON.stringify(结果));
},函数(err){
log('错误:删除视频数据文件'+JSON.stringify(err));
});
}
})
此解决方案仍然有效吗?我也有同样的问题,使用你的代码,它似乎成功地删除了文件,但它仍然出现在我的图库中。如果您只是将文件复制到另一个位置并将其删除,那么原始文件不会仍然存在并上载到图库?@MatTaNg,我面临的问题是无法从项目本身删除文件。文件仍然保留在库中,但我正在引用cordova目录中的文件来显示和删除。所以,当用户进入gallery并删除它时,它仍然保留在项目中哦,好吧,我不熟悉cordova文件插件。我可以使用removeFile功能删除我的问题库中的视频吗?@MatTaNg,不,你不能,伙计。自4.4版起,我们无法从MICRO SD卡中删除和写入文件。它现在是只读的。这就是为什么你需要复制项目中的文件。无论如何,我会将视频上传到数据库中,但我不希望我的用户在他们的图库中有一堆10秒的视频剪辑。无法阻止视频保存到库中,也无法在视频保存到库中后将其从库中删除?
.controller('yourCtrl', function($scope,$cordovaCapture,$sce,$cordovaFile, $cordovaFileTransfer, $timeout) {
$cordovaCapture.captureVideo(options).then(function(videoData) {
console.log(JSON.stringify(videoData[0]));
console.log(cordova.file.externalDataDirectory);
$cordovaFileTransfer.download(videoData[0].fullPath, cordova.file.externalDataDirectory + 'my-video.mp4', {}, true).then(
function(result)
{
console.log('success: '+ result);
},
function (error)
{
console.log('error: '+ JSON.stringify(error));
},function (progress) {
$timeout(function () {
$scope.downloadProgress = (progress.loaded / progress.total) * 100;
});
},false);
$scope.clipSrc = $sce.trustAsResourceUrl(videoData[0].fullPath);
//$scope.videoSrc = videoData[0].fullPath;
}, function(err) {
alert('Err: <br />'+ JSON.stringify(videoData));
});
//delete the file according to filename.
$scope.deleteVideo= function(){
$cordovaFile.removeFile(cordova.file.externalDataDirectory, "my-video.mp4")
.then(function (result) {
console.log('Success: deleting videoData file' + JSON.stringify(result));
}, function (err) {
console.log('Error: deleting videoData file' + JSON.stringify(err));
});
}
})