3

Ich habe mp4-Video mit (aws-sdk) in meiner ionischen mobilen App hochgeladen. Dies ist die Ruhe des Codes.Hochgeladene mp4-Video kann nicht HTML5 Player abspielen

$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(); 
       }); 
}) 

Das Video wurde erfolgreich hochgeladen. Das hochgeladene Video kann jedoch nicht auf dem html5-Player wiedergegeben werden.

<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> 

Beim Hochladen eines Videos mit aws s3 Dashbord wurde das Video erfolgreich auf diesem Player wiedergegeben? Was ist das Problem, wenn das Video durch die Anwendung Hochladen (aws-sdk verwenden)

+0

Versucht, direkt auf Video zugreifen und die Fehler sagt Eimer 'www.test-uploads' existiert nicht. – zer00ne

+0

Wenn Sie einen Bucket nicht vorhanden Nachricht haben dann überprüfen Sie Ihre Berechtigungen ... – Offbeatmammal

+0

@ Offbeatmammal Berechtigung ist richtig. Ich kann es erfolgreich hochladen. biut hochgeladene Datei nach base64 codiert – ding7890

Antwort

1

ich dich hier haben Ausgabe von cordova Datei-Upload-Plugin

$ cordovaFile.readAsDataURL (Pfad, Datei)

readAsDataURL Funktion unterstützt wird , aber der Medientyp in Chrome hängt von der Erweiterung des Eintrags ab, der Medientyp in IE ist immer leer (entspricht der Text-Ebene gemäß der Spezifikation), der Medientyp in Firefox ist immer application/octet-stream. Zum Beispiel, wenn der Inhalt abcdefg kehrt dann Firefox data:application/octet-stream;base64,YWJjZGVmZw==, IE kehrt data:;base64,YWJjZGVmZw==, kehrt Chrome data:<mediatype depending on extension of entry name>;base64,YWJjZGVmZw==

Mehr details

Dann Datei-ID hochgeladen Base64 codiert.

Verwenden Sie für die Upload-Datei diese Methode. Dann können Sie Binärdaten des Videos hochladen.

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

---Code--- 

})