2017-06-15 3 views
0

Ich versuche, eine .mov-Datei in Firebase-Speicher in meiner React Native App zu speichern. Ich konvertiere die Datei in einen Blob und lade sie in Firebase hoch. Die Datei wird in Firebase mit dem Typ video/mov gespeichert, also scheint alles cool..mov-Dateien werden als Text in Firebase gespeichert

enter image description here

Allerdings, wenn ich versuche, die Datei herunterladen, es wird als Textdatei heruntergeladen und jetzt es zu betrachten, sieht es aus wie es als Textdatei gespeichert werden.

enter image description here

Irgendwelche Gedanken darüber, warum dies geschieht? Das Video, das ich auf meinem Handy aufnehme, wird auf der Festplatte mit der Erweiterung .mov gespeichert.

Hier der entsprechende Code ist

this.camera.capture({mode: Camera.constants.CaptureMode.video}) 
    .then((data) => { 
     console.log(data) 
     const video = data.path; 
     this.props.dispatch(saveVideoPath(video)); 
     let rnfbURI = RNFetchBlob.wrap(video); 
     Blob 
     .build(rnfbURI, { type : 'video/mov'}) 
     .then((blob) => { 
      console.log(blob); 
      storageRef.child('video/' + '12345').put(blob, { contentType : 'video/mov' }) 
      .then((snapshot) => { 
       const downloadURL = snapshot.downloadURL 
       this.props.dispatch(saveVideoDownloadURL(downloadURL)); 
       console.log('Uploaded a blob or file!'); 
      }).catch(error => console.log(error)); 
     }) 
    }) 
+1

Haben Sie versucht, die Datei mit einer anderen App mit einer Video-App zu öffnen? –

+0

@AlexMamo Ich lade es über die Firebase DownloadURL herunter, aber es wird als Textdatei heruntergeladen, sodass ich es nicht mit einer Video-App öffnen kann. Ich würde annehmen, dass es mit der .mov-Erweiterung herunterladen würde, dann würde ich Quicktime oder etwas verwenden – maxwellgover

+0

Sie können jede Datei in jedem Programm öffnen, nicht, dass es richtig aussehen wird, aber dennoch können Sie es öffnen. Wenn Sie gerade Ihren Movie-Player geöffnet haben und den Befehl zum Öffnen verwenden und auf die Datei zeigen, wird das Video richtig geladen? –

Antwort

1

Ihr Problem ist, dass Sie versuchen, die gespeicherte Videodatei mit einem file viewer anstelle eines video player zu öffnen, das ist, warum Sie diese Symbole zu sehen. Ändern Sie dazu die App, mit der Sie die Filmdateien öffnen, und versuchen Sie, Quicktime auszuwählen. Wie ich in Ihrem Screenshot sehe, ist der Typ Ihrer Datei video/mov. Es ist also eine Videodatei und keine Textdatei.

Ich hoffe, es hilft.

+0

Wenn ich das versuche, heißt es, das Dokument konnte nicht geöffnet werden. QuickTime Player kann Dateien im "Datenformat" nicht öffnen. – maxwellgover

+1

Sind Sie sicher, dass Ihre Datei die Erweiterung '.mov' hat? Wenn nicht, laden Sie die Datei mit dem gleichen Namen hoch und stellen Sie sicher, dass die Datei die richtige Erweiterung ".mov" hat. Versuchen Sie dieses Beispiel: nennen Sie Ihre Datei: 'movie.mov' Funktioniert es? –

+0

Haben Sie versucht, mein Beispiel zu verwenden? –

0

Ich hatte auch das gleiche Problem. Die Lösung bestand darin, die Eigenschaft contentDisposition auf eine leere Zeichenfolge zu setzen, wenn die Dateierweiterung ".mov" war.

So sah meine Metadaten etwas wie folgt aus:

var metadata = { 
      contentType: 'video/quicktime', 
      name: 'videoName.mov', 
      contentDisposition: '' 
}; 

Hoffnung, das hilft.

Verwandte Themen