То, что мы пытаемся сделать в нашем приложении, - это записать видео и загрузить его в 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();
}
}
}