我想从互联网路径的 videoview 获取视频大小(以 MB 为单位)

2024-04-25

我试图在开始视频之前获取视频文件大小并将其显示在布局中。

我已经尝试了很多东西,但它不起作用

video_player_view = (VideoView) findViewById(R.id.videoView2);
    media_Controller = new MediaController(this);
    dm = new DisplayMetrics();
    this.getWindowManager().getDefaultDisplay().getMetrics(dm);
    int height = dm.heightPixels;
    int width = dm.widthPixels;
    try {
        video_player_view.setMinimumWidth(width);
        video_player_view.setMinimumHeight(height);
    } catch (Exception e) {}
    video_player_view.setMediaController(media_Controller);
    video_player_view.setVideoPath(path);
    video_player_view.start();


    if (savedInstanceState != null) {
        video_player_view.seekTo(savedInstanceState.getInt("current_position"));
    }

    vidTitle = (TextView) findViewById(R.id.vidTitle);
    vidDesc = (TextView) findViewById(R.id.vidDesc);
    vidSize = (TextView) findViewById(R.id.vidSize);
    vidDur = (TextView) findViewById(R.id.vidDur);
    vidDownload = (ImageButton) findViewById(R.id.vidDownload);
    vidFav = (CheckBox) findViewById(R.id.vidFav);
    vidTitle.setText(singleVideoInfo.title);
    vidDesc.setText(singleVideoInfo.description);
    video_player_view.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            progressBarCircularIndeterminate.setVisibility(View.GONE);
            int duration = video_player_view.getDuration() / 1000;
            int hours = duration / 3600;
            int minutes = (duration / 60) - (hours * 60);
            int seconds = duration - (hours * 3600) - (minutes * 60);
            String formatted = String.format("Duration: %d:%02d:%02d", hours, minutes, seconds);
            vidDur.setText(formatted);
            //vidSize.setText("???");


        }
    });

我希望在视频初始化时显示视频大小onPreparedlistener

我试过这个

URL myUrl = new URL("http://your_url.com/file.mp4");
URLConnection urlConnection = myUrl.openConnection(); 
urlConnection.connect();
int file_size = urlConnection.getContentLength();
    file_size = file_size /1024;

和这个

URL myUrl = new URL("http://your_url.com/file.mp4");
myConnection = myUrl.openConnection();
List headersize = myConnection.getHeaderFields().get("content-Lenght");

什么都行不通 请帮忙


我认为你的做法有尺寸限制。试试这个方法:

final URL uri=new URL("http://your_url.com/file.mp4");
URLConnection connection;
try
{
   connection=uri.openConnection();
   connection.connect();
   final String contentLengthStr=ucon.getHeaderField("content-length");
   // do whatever
}

catch(final IOException exception)
{
}

edit:我刚刚注意到你尝试过类似的东西,但你拼写的长度不正确,也许就是这样

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我想从互联网路径的 videoview 获取视频大小(以 MB 为单位) 的相关文章

随机推荐