2015-08-13 9 views
3

Im пытается получить размер видеофайла и отобразить его в макете перед запуском видео.Я хочу получить размер видео в МБ с видеоввода из интернет-пути

я попробовал много вещи, но это не будет работать

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

ничего не получилось Пожалуйста, помогите

+0

сделал это работает Kizukooo? – Ben

ответ

1

Я думаю, что существует ограничение по размеру с тем, как вы это делаете. Попробуйте так:

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) 
{ 
} 

редактировать: я только заметил, что вы пытались что-то подобное, но вы видите длину неправильно, может быть, это просто, что