播放通过PhoneGap FileTransfer上传的视频时出错

Pre*_*Raj 6 video android file-transfer phonegap-plugins cordova

我一直坚持这个问题,我似乎无法找到解决方案.我想要实现的是:

  1. 从手机库中选择一个视频
  2. 使用签名的PUT URL将视频上传到Amazon AWS
  3. 下载上传的视频并在PC上播放

我可以从手机的图库中选择视频,并成功将其上传到亚马逊aws.但是,当我尝试打开并播放文件时,媒体播放器会说不支持文件格式.

它不能成为我的播放器的编解码器问题,因为我可以播放上传到亚马逊的其他视频(通过标准HTML文件输入).另外,当我将同一视频从手机传输到桌面时,它可以播放.

我有一种感觉,我在设置FileTransfer对象时错过了一些东西.以下是我的代码片段:

navigator.camera.getPicture(
function(imgUrl) {
    that.mDialogOpen("Uploading video...");
    window.resolveLocalFileSystemURL(imgUrl, function(fileEntry) {
        fileEntry.file(function(file) {
            var parts       = fileEntry.nativeURL.split('/');
            var filename    = parts[parts.length - 1];

            // Params is sent to the server to generate the signed amazon put url
            var params      = {'a':'handlerFunctionKey', 'name':filename, 'type':'multipart/encrypted'};

            var callback = function(data) {
                alert("In callback");
                var dataResp = data['handlerFunctionKey'];
                if (dataResp.status == 'SUCCESS') {
                    var amazonUrl = decodeURIComponent(dataResp.object);

                    alert("Setting up options: " + file.type);
                    var ftOptions           = new FileUploadOptions();
                    ftOptions.fileName      = filename;
                    ftOptions.mimeType      = file.type;
                    ftOptions.chunkedMode   = false;
                    ftOptions.headers       = {'Content-Type':"multipart/encrypted",'x-amz-acl':'public-read',"Connection":"close"};
                    ftOptions.httpMethod    = 'PUT';

                    var ft = new FileTransfer();
                    ft.upload(imgUrl, amazonUrl, 
                    function() {
                        $("#mModalText").html("Upload success");
                    }, 
                    function(err) {
                        alert("Upload error: " + err.code);
                        alert("Upload target: " + err.target);
                        alert("Upload source: " + err.source);
                    }, ftOptions, true);
                }
            };

            that.doAjax(params, callback); // Execute ajax call to server and run the callback function upon response
        }, function() {});
    }, function() {});
},
function() {}, options);
Run Code Online (Sandbox Code Playgroud)

getPicture函数的'选项'是:

var options = {quality:50, destinationType:Camera.DestinationType.FILE_URI};
options['sourceType']   = Camera.PictureSourceType.PHOTOLIBRARY;
options['mediaType']    = Camera.MediaType.VIDEO;
options['targetWidth']  = 640;
options['targetHeight'] = 480;
Run Code Online (Sandbox Code Playgroud)

我正在上传的视频是带有mimeType'video/mp4'的MP4.我正在Android上测试这个.我正在通过远程构建使用Phonegap 6.0.1版构建代码.

提前致谢.