如何创建和上传视频以解析服务器?

时间:2016-07-15 18:09:05

标签: javascript cordova typescript ionic-framework ionic2

我可以使用解析服务器将图像文件上传到S3。 (通过从base64图像数据创建解析文件并在解析文件上执行save())

如何为视频文件执行相同的操作?我正在使用带有打字稿的Ionic 2应用程序中的parse-server js库来执行此操作。以下代码适用于图像。

let file = new Parse.File("thumbnail", { base64: imageData });
        file.save().then(() => {
            // The file has been saved to Parse.
            console.log("File uploaded....");
        }, (error) => {
            // The file either could not be read, or could not be saved to Parse.
            console.log("File upload failed.");
        });

如果是视频文件,我会收到来自cordova媒体捕获回调的文件位置。帮我上传视频文件。

谢谢

1 个答案:

答案 0 :(得分:1)

经过几天的研究,这是我的解决方案。 它适用于iPhone 重要的声明如下: 数据= data.replace( “QuickTime的”, “MOV”);

var options = { limit: 1, duration: 30 };
navigator.device.capture.captureVideo(function(files){
    // Success! Audio data is here
    console.log("video file ready");
    var vFile = files[0];
    console.log(vFile.fullPath);
    ///private/var/mobile/Containers/Data/Application/7A0069EB-F864-438F-A685-A0DAE97F8B2D/tmp/capture-T0x144510b50.tmp.GfXOow/capturedvideo.MOV
    self.auctionvideo = vFile.fullPath; //localURL;
    console.log(self.auctionvideo);

    var fileReader = new FileReader();
    var file;
    fileReader.onload = function (readerEvt) {
        var data = fileReader.result;
        data=data.replace("quicktime","mov");
        console.log(data);
        //data:video/quicktime;base64,AAAAFGZ0
        console.log(data.length);
        self.auctionvideo=data;
        self.videofile = {base64:data};
    };
    //fileReader.reasAsDataURL(audioFile); //This will result in your problem.
    file = new window.File(vFile.name, vFile.localURL, 
                           vFile.type, vFile.lastModifiedDate, vFile.size);
    fileReader.readAsDataURL(file); //This will result in the solution.
    // fileReader.readAsBinaryString(file); //This will result in the solution.
},
function(error){

},
options);