我已经开发了可下载视频的应用程序。但是下载的视频只能通过我的应用程序打开(例如youtube)。因此,我决定在下载视频文件之前先对其进行加密。 我从api获得视频网址,就像http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4。我必须加密BigBuckBunny.mp4文件并使用cryto-js加密将其存储到内部storage.im。
downloadVideo(url){
let link = url;
let path = '';
let dir_name = 'training_videos';
let file_name = this.GetFilename(url)+'.mp4';
let encryted_file=CryptoJS.AES.encrypt(file_name, '123')
const fileTransfer = this.transfer.create();
let result = this.file.createDir(this.file.externalRootDirectory+'/ayc/training_videos/', dir_name, true);
result.then((resp) => {
path = resp.toURL();
console.log(path);
fileTransfer.onProgress((progressEvent) => {
// alert(progressEvent);
var perc = Math.floor(progressEvent.loaded / progressEvent.total * 100);
this.progress = perc;
// alert(this.progress);
});
fileTransfer.download(link, path + encryted_file).then((entry) => {
alert('download complete: ' + entry.toURL());
}, (error) => {
console.log(error)
});
}, (err) => {
alert('error on creating path : ' + err);
});
}
//get file name from url
GetFilename(url)
{
if (url)
{
var m = url.toString().match(/.*\/(.+?)\./);
if (m && m.length > 1)
{
return m[1];
}
}
return "";
}
我希望输出加密的视频文件不应在文件管理器中播放。