2016-11-28 13 views
3

私のイオンモバイルアプリで(aws-sdk)を使用してmp4ビデオをアップロードしました。 これはコードの平和です。アップロードされたmp4ビデオはHTML5プレーヤーを再生できません

$cordovaFile.readAsDataUrl(first, file).then(function(success) { 
    AWS.config.region = 'eu-west-1'; 
    AWS.config.update({ 
       accessKeyId: '', 
       secretAccessKey: '' 
    }); 

    var bucket = new AWS.S3({ 
        params: { 
         Bucket: 'www.bucket-new' 
        } 
       }); 

    var params = { 
        Key: "test.mp4", 
        ContentEncoding: 'base64', 
        ContentType: 'video/mp4', 
        Body: success 
       }; 

    bucket.upload(params).on('httpUploadProgress', function(evt) { 
        console.log('sucess'); 
        $scope.uploading = true; 
        $scope.progress = parseInt((evt.loaded * 100)/evt.total) + '%'; 
        console.log("Uploaded :: " + $scope.progress); 
        $scope.$apply(); 
       }).send(function(err, data) { 
        $scope.uploading = false; 
        $scope.$apply(); 
       }); 
}) 

動画は正常にアップロードされました。しかし、アップロードされた動画はhtml5プレーヤーで再生できません。

<video controls="controls" preload="metadata" autoplay="autoplay" webkit-playsinline="webkit-playsinline" class="videoPlayer"><source src="https://s3-eu-west-1.amazonaws.com/www.test-uploads/test.mp4" type="video/mp4"/></video> 

aws s3ダッシュボードを使用してビデオをアップロードすると、そのビデオはこのプレーヤーで正常に再生されましたか?私はここ(AWS-SDKを使用して)アプリケーションを介し

+0

ビデオに直接アクセスしようとしましたが、エラーはバケット「www.test-uploads」は存在しません。 – zer00ne

+0

バケツが存在しない場合は、アクセス権を確認してください... – Offbeatmammal

+0

@ Offbeatmammalの許可が正しいです。私はそれを正常にアップロードすることができます。 biutアップロードされたファイルをbase64にエンコード – ding7890

答えて

1

ビデオをアップロードするときにコルドバファイルアップロードプラグインの問題

$ cordovaFile.readAsDataURL(パス、ファイル)

readAsDataURL機能がサポートされているを持っている問題は何ですかChromeのmediatypeはエントリ名の拡張子に依存しますが、IEのmediatypeは常に空です(仕様に応じてtext-plainと同じです)。Firefoxのmediatypeは常にapplication/octet-streamです。例えば、コンテンツがABCDEFGである場合、Firefoxはdata:application/octet-stream;base64,YWJjZGVmZw==を返し、IEはdata:;base64,YWJjZGVmZw==を返し、クロムそしてdetails

data:<mediatype depending on extension of entry name>;base64,YWJjZGVmZw==

詳細を返す符号化されたファイルID BASE64をアップロード。

アップロードファイルについては、この方法を使用してください。 ビデオのバイナリデータをアップロードできます。

$cordovaFile.readAsArrayBuffer(first, file) 
     .then(function(success) { 

---Code--- 

}) 
関連する問題