Como pegar o tempo de duração de um vídeo em Java?

Estou desenvolvendo um player que vai passar imagens, paginas Web e Videos. As imagens e Paginas Web precisam de um temporizador que vai ser executado por 30 Segundos, só que agora preciso de um método que pegue o tempo de execução dos vídeos que insira o código aqui serão mostrados e colocar o valor na Trhead.sleep.

public void testeVideo(int indice){         ArrayList<Uri> listaExecucao = getListaExecucao();         String midia = listaExecucao.get(indice).toString();         Uri midia1 = Uri.parse(midia);         vv.setVisibility(View.VISIBLE);         vv.setVideoURI(midia1);         duracao = vv.getDuration();         String duracaoS = String.valueOf(duracao);          Toast.makeText(WebPlayerActivity.this,duracaoS, Toast.LENGTH_SHORT).show();     }

Tentei usar essa função e coloquei um Toast para saber qual o valor que foi passado porém o valor passado foi -1.