Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 播放通过PhoneGap文件传输上传的视频时出错_Android_Cordova_Video_Phonegap Plugins_File Transfer - Fatal编程技术网

Android 播放通过PhoneGap文件传输上传的视频时出错

Android 播放通过PhoneGap文件传输上传的视频时出错,android,cordova,video,phonegap-plugins,file-transfer,Android,Cordova,Video,Phonegap Plugins,File Transfer,我在这个问题上陷入了一段时间,似乎找不到解决办法。我试图实现的是: 从手机库中选择视频 使用签名的PUT url将视频上载到Amazon AWS 下载上传的视频并在电脑上播放 我能够从手机的多媒体资料中选择视频,并成功地将其上传到Amazon aws。但是,当我尝试打开并播放该文件时,media player表示不支持该文件格式 我的播放器不能存在编解码器问题,因为我可以播放上传到amazon的其他视频(通过标准HTML文件输入)。另外,当我将相同的视频从手机传输到桌面时,它是可以播放的 我感觉

我在这个问题上陷入了一段时间,似乎找不到解决办法。我试图实现的是:

  • 从手机库中选择视频
  • 使用签名的PUT url将视频上载到Amazon AWS
  • 下载上传的视频并在电脑上播放
  • 我能够从手机的多媒体资料中选择视频,并成功地将其上传到Amazon aws。但是,当我尝试打开并播放该文件时,media player表示不支持该文件格式

    我的播放器不能存在编解码器问题,因为我可以播放上传到amazon的其他视频(通过标准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);
    
    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;
    
    我上传的视频是一个模拟类型为“video/MP4”的MP4。我正在Android上测试这个。我正在通过远程构建使用Phonegap版本6.0.1构建代码

    提前谢谢