Сжать качество видео и загрузить в Firebase не удалось сжать размер видео MP4 - PullRequest
1 голос
/ 10 января 2020

То, что мы пытаемся сделать в нашем приложении, - это записать видео и загрузить его в firebase, но мы хотим уменьшить размер видео, прежде чем загружать то, что я попробовал, это установить intent.putExtra (MediaStore.EXTRA_VIDEO_QUALITY, 0.9) ; но в тот момент, когда мы установили качество на 0,9, видео сжимается, но нет голоса для видео, и оно сохраняется в 3gp И когда мы увеличиваем качество до 1 intent.putExtra (MediaStore.EXTRA_VIDEO_QUALITY, 1); видео размером в 1 минуту увеличивается до 200 МБ

enter code 
public class MainActivity extends AppCompatActivity {

private Uri videouri;
Button button;
private StorageReference videoRef;
private DatabaseReference ref;
private static final int REQUEST_CODE = 101;
private FirebaseAuth mAuth;
MediaRecorder mediaRecorde=new MediaRecorder();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    videoRef= FirebaseStorage.getInstance().getReference("videos");
    ref = FirebaseDatabase.getInstance().getReference("videos");
    button=findViewById(R.id.button3);
  button.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
 StorageReference storageRef = FirebaseStorage.getInstance().getReference();

                videoRef= FirebaseStorage.getInstance().getReference("videos");
                ref = FirebaseDatabase.getInstance().getReference("videos");
                String abc=String.valueOf(videouri);
          Log.i("info", "onClick: "+abc);
                String filename=abc.replace("content://media/external/video/media/","");
          Log.i("info", "onClick: "+filename);
                videoRef = storageRef.child("/videos/"  + filename);




          upload();
      }
  });
   }
   private String getFileExtension(Uri uri) {
    ContentResolver cR = getContentResolver();
    MimeTypeMap mime = MimeTypeMap.getSingleton();
    return mime.getExtensionFromMimeType(cR.getType(uri));
}

  public void upload() {
    if (videouri != null) {
//            final DatabaseReference ac= ref.child(System.currentTimeMillis()
 //                  + "." + getFileExtension(videouri));
        final UploadTask uploadTask = videoRef.putFile(videouri);
        uploadTask.addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });
        uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

       // Toast.makeText(MainActivity.this, "success fully uploaded"oast.LENGTH_SHORT).show();


            }
        });
        uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                updateProgress(taskSnapshot);
            }
        });
    } else {
        Toast.makeText(this, "Nothing to Upload", Toast.LENGTH_SHORT).show();
    }
   }

    public void updateProgress(UploadTask.TaskSnapshot taskSnapshot) {

    long fileSize = taskSnapshot.getTotalByteCount();

    long UploadBytes = taskSnapshot.getBytesTransferred();
    long progress = (100 * UploadBytes) / fileSize;
    ProgressBar progressBar = (ProgressBar) findViewById(R.id.pbar);
    progressBar.setProgress((int) progress);


}

    public void record(View view) {

    //        mediaRecorde.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
     //        mediaRecorde.setVideoEncodingBitRate(690000);

    Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,0.9);
    //intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT,21966080L);
    intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT,60);
     //        MediaRecorder mediaRecorder=new MediaRecorder();
      //        mediaRecorder.setVideoEncodingBitRate(1000000);



    startActivityForResult(intent, REQUEST_CODE);

  }




protected void onActivityResult(int requestCode,int resultCode,Intent data){
    super.onActivityResult(requestCode, resultCode, data);
videouri=data.getData();

  if(resultCode==1){
Toast.makeText(this, "Video saved to:\n"+videouri, Toast.LENGTH_LONG).show();


 }else if(resultCode==RESULT_CANCELED){
Toast.makeText(this, "RECORDING CANCELLED.", Toast.LENGTH_SHORT).show();
}else{
//  Toast.makeText(this, "failed to record", Toast.LENGTH_SHORT).show();
Toast.makeText(this, "Video saved to:\n"+videouri, Toast.LENGTH_LONG).show();
}

}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...