Android从图库中获取视频的文件大小

Posted

技术标签:

【中文标题】Android从图库中获取视频的文件大小【英文标题】:Android get file size of video from gallery 【发布时间】:2016-12-25 15:27:40 【问题描述】:

我必须将视频从画廊上传到 VideoView。但我想以字节为单位获取视频的大小。请帮我 !! 这是我的代码:

 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();
                    
                
            

【问题讨论】:

【参考方案1】:

您只需要创建一个新的 File 对象,例如...

    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();

这给出了文件的大小,而不是图像

【讨论】:

【参考方案2】:

有一个 URI 你可以这样做:

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();

【讨论】:

以上是关于Android从图库中获取视频的文件大小的主要内容,如果未能解决你的问题,请参考以下文章

为什么从Android应用程序下载的视频没有显示在图库中?

如何在android中以编程方式上传到服务器之前减小视频的大小[关闭]

当我压缩从图库中获取的图像大小时,高度和宽度也会被压缩

以自定义尺寸阅读图库视频

Android:构建一个 APK 几乎是嵌入视频文件大小的两倍?

Qt 和 Android - 从图库中的图像获取路径