Android gets video file size from gallery

I need to upload videos from the gallery to VideoView. But I want to get the size of the video in bytes. Please help me!! This is my code:

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Intent intent=new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                    intent.setType("video/*");
                    startActivityForResult(intent,1);
}
            @Override
            protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                if(requestCode==1&&resultCode== Activity.RESULT_OK){
                    try{
                        String path=data.getData().toString();
                        videoView.setVideoPath(path);
                        videoView.requestFocus();
                        videoView.start();
                       }
                    catch (Exception ex){
                        ex.printStackTrace();
                    }
                }
            }
+4
source share
2 answers

You just need to create a new File object, for example ...

    String filepath = Environment.getExternalStorageDirectory() + "/file.mp4";
    File file = new File(filepath);
    long length = file.length();
    length = length/1024;
    Toast.makeText(getActivity(), "Video size:"+length+"KB",
    Toast.LENGTH_LONG).show();

this gives the file size, not the image

+3
source

Having a URI, you can do it like this:

String[] mediaColumns = {MediaStore.Video.Media.SIZE};
Cursor cursor = getContext().getContentResolver().query(videoUri, mediaColumns, null, null, null);
cursor.moveToFirst();
int sizeColInd = cursor.getColumnIndex(mediaColumns[0]);
long fileSize = cursor.getLong(sizeColInd);
cursor.close();
0
source

Source: https://habr.com/ru/post/1664846/


All Articles