2016-08-16 5 views
0

ギャラリーから画像を添付してfirebaseに送信できます。しかし、私はギャラリーからfirebaseにビデオをアップロードしたいと思います。私はfirebaseのための文書を読んだが、何も見つけることができなかった。ギャラリーからFirebaseサーバーにビデオを送信

誰もこれを前にしていますか?高度なヘルプは高く評価されます!

コード: Firebaseストレージにファイルをアップロード

if (resultCode == RESULT_OK) { 
      Uri selectedVideoUri = data.getData(); 
      StorageMetadata metadata = new StorageMetadata.Builder() 
        .setContentType("video/mpeg") 
        .build(); 
      if (selectedVideoUri == null) { 
       Log.e("selected video path", "null"); 
       finish(); 
      } else { 
       Log.v("selectedVideoPath", selectedVideoUri.toString()); 
       if (selectedVideoUri != null) { 
        StorageReference videoGalleryRef = storageRefVideo.child(selectedVideoUri + "_video"); 
        sendFileFirebaseVideo(videoGalleryRef, selectedVideoUri, metadata); 
       } 
      } 
     } 

private void sendFileFirebaseVideo(StorageReference storageReference, final Uri file, final StorageMetadata metadata) { 
    if (storageReference != null) { 
     final String name = DateFormat.format("yyyy-MM-dd_hhmmss", new Date()).toString(); 
     StorageReference videoGalleryRef = storageReference.child(name + "_video"); 
     UploadTask uploadTask = videoGalleryRef.putFile(file, metadata); 
     uploadTask.addOnFailureListener(new OnFailureListener() { 
      @Override 
      public void onFailure(@NonNull Exception e) { 
       Log.e(TAG, "onFailure sendFileFirebase " + e.getMessage()); 
      } 
     }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
       Log.i(TAG, "onSuccess sendFileFirebase"); 
       Uri downloadUrl = taskSnapshot.getDownloadUrl(); 
       FileModel fileModel = new FileModel("video", downloadUrl.toString(), name, ""); 
       ChatModel chatModel = new ChatModel(userModel, "", Calendar.getInstance().getTime().getTime() + "", fileModel); 
       mFirebaseDatabaseReference.child(CHAT_REFERENCE).push().setValue(chatModel); 
      } 
     }); 
    } else { 
    } 

} 
+0

がここFirebaseのドキュメントで覆われているギャラリーから、活動結果の選択ビデオながらここ

ます。https:// firebase .google.com/docs/storage/android/upload-files。問題がある場合は、[問題を再現する最小限のコード](http://stackoverflow.com/help/mcve)を共有してください。それがなければ、助けが難しいでしょう。 –

+0

@FrankvanPuffelen私の編集を確認してください。私のコードにはどんな問題がありますか? –

+0

ありがとう。どうしたの? –

答えて

1
// Create instance of StorageReference 
StorageReference storageRef = FirebaseStorage.getInstance().getReference(); 
final StorageReference photoRef = storageRef.child("FolderToCreate").child("NameYoWantToAdd"); 
// add File/URI 
photoRef.putFile(Uri.fromFile(filename)) 
     .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
       // Upload succeeded 
       Toast.makeText(getApplicationContext(), "Upload Success...", Toast.LENGTH_SHORT).show(); 

      } 
     }) 
     .addOnFailureListener(new OnFailureListener() { 
      @Override 
      public void onFailure(@NonNull Exception exception) { 
       // Upload failed 
       Toast.makeText(getApplicationContext(), "Upload failed...", Toast.LENGTH_SHORT).show(); 
      } 
     }).addOnProgressListener(
     new OnProgressListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { 
       //calculating progress percentage 
       double progress = (100.0 * taskSnapshot.getBytesTransferred())/taskSnapshot.getTotalByteCount(); 

       //displaying percentage in progress dialog 
       progressDialog.setMessage("Uploaded " + ((int) progress) + "%..."); 
      } 
     }); 
+0

これは私を助けました! – grant

関連する問題