Android上视频的持续时间

时间:2017-05-16 14:26:06

标签: android video android-videoview android-video-player

在此代码中,我尝试使用方法getDuration()来获取视频的持续时间,但它不起作用并且始终返回-1。怎么了?我可以用另一种方式获得持续时间吗?(视频是放在目录raw中的mp4文件)

    videoPlayer = (VideoView) this.findViewById(R.id.videoView2);
    videoPlayer.setVideoPath("android.resource://"+getPackageName()+"/"+R.raw.video3);
    int duration = videoPlayer.getDuration();

2 个答案:

答案 0 :(得分:0)

从videoView中的getDuration复制:

public int getDuration(){
    if (isInPlaybackState()) {
        return mMediaPlayer.getDuration();
    }
    return -1;
}

因此,从我看到的情况来看,如果视频没有播放,则无法获得正确的持续时间。因此,一种可能的解决方案是开始播放,获取持续时间然后停止播放并重新启动视频。

答案 1 :(得分:0)

在setOnPreparedListener内部调用getDuration

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