如何在android中的视频视图中获取视频的总长度

时间:2011-11-01 08:53:57

标签: android

我有一个问题,我想获得在视频视图中运行的视频的总长度我使用视频视图的getDuration方法但是当我将它与currentPosition进行比较时它总是返回-1。实际上我想要的是,如果视频的当前位置等于视频的总长度,那么它应该从第0位开始意味着开始。意思是我想说我想比较视频当前位置和视频的总长度,我该怎么做?

提前致谢。

代码:

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

5 个答案:

答案 0 :(得分:16)

获取视频使用代码的总长度:

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

答案 1 :(得分:9)

要获取视频长度,请使用以下代码

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

答案 2 :(得分:0)

您可以使用以下代码:

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

答案 3 :(得分:-1)

我认为没有直接的方法来实现这一点,但通过这些功能,你可以做到这一点。 你应该试试。

public int getBufferPercentage()

public int getDuration()

http://developer.android.com/reference/android/widget/VideoView.html

答案 4 :(得分:-3)

为什么使用LOCATION_SERVICE获取视频位置? LOCATION_SERVICE用于精确定位设备的位置。请参阅此link