2011-11-01 23 views
6

Tengo un problema que quiero obtener la longitud total del video que se está ejecutando en la Vista de video. Estoy usando el método getDuration de la vista de video pero siempre devuelve -1 cuando lo estoy comparando con currentPosition. En realidad, quiero que si la posición actual del video es igual a la duración total del video, entonces debe comenzar desde la posición 0 significa iniciar. Quiero decir que quiero comparar la posición actual del video con la duración total del video, ¿cómo puedo hacer eso?cómo obtener la duración total del video en la vista de video en android

Gracias de antemano.

Código:

videoPosition=VideoPositionFinding(IDValue,video.getDuration()); 
    video.seekTo(videoPosition); 
    if(video.getCurrentPosition()==video.getDuration()){ 
     videoPosition=0; 
    } 
    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    System.out.println("The Video Duration: "+video.getCurrentPosition()); 

    video.start(); 
+0

Publica tu codifique aquí para que sepamos cuál es el problema – androidnoob

+0

Consulte nuevamente He editado la pregunta con el código –

Respuesta

-3

¿Por qué utiliza LOCATION_SERVICE para obtener la posición de vídeo? El LOCATION_SERVICE está destinado a la ubicación exacta del dispositivo. Consulte este link.

+0

ubicación Serv el hielo no es para obtener la posición del video, no es para su preocupación –

+3

En ese caso, entonces no coloque esa línea de código allí. Es muy engañoso – androidnoob

13

Para obtener la longitud total de código de uso de vídeo:

videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
      @Override 
      public void onPrepared(MediaPlayer mp) {       
       long duration = videoView.getDuration(); 
      } 
     }); 
+0

Esto funciona para mí. – AlexAndro

+0

Tenga cuidado con esto a veces devuelve ms y, a veces Segundos – htafoya

+0

@htafoya ¿es en serio? Eso sería una broma, no es posible – kolboc

6

Para obtener la longitud de la imagen use el código de abajo

myVideoView.setOnPreparedListener(new OnPreparedListener() { 

     @Override 
     public void onPrepared(MediaPlayer mp) { 
      // TODO Auto-generated method stub 
      int duration=mp.getDuration()/1000; 
      int hours = duration/3600; 
      int minutes = (duration/60) - (hours * 60); 
      int seconds = duration - (hours * 3600) - (minutes * 60) ; 
      String formatted = String.format("%d:%02d:%02d", hours, minutes, seconds); 
      Toast.makeText(getApplicationContext(), "duration is " + formatted , Toast.LENGTH_LONG).show(); 
     } 
    }); 
0

Puede utilizar a continuación código:

int duration = MediaPlayer.create(context, Uri.fromFile(new File(video_path))).getDuration(); 
Cuestiones relacionadas