【问题标题】:duration of a video on AndroidAndroid上的视频时长
【发布时间】:2017-05-16 14:26:05
【问题描述】:

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

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

【问题讨论】:

  • 您是否确保视频出现在链接中?
  • 是的,因为我可以看到视频
  • 尝试启动它然后使用函数

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


【解决方案1】:

从 videoView 中的 getDuration 复制:

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

因此,据我所知,如果视频没有播放,您将无法获得正确的持续时间。因此,一种可能的解决方案是开始播放,获取持续时间,然后停止播放并重新启动视频。

【讨论】:

    【解决方案2】:

    在 setOnPreparedListener 中调用 getDuration

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

    【讨论】:

      猜你喜欢
      • 2014-03-02
      • 2018-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-04
      • 2013-03-18
      相关资源
      最近更新 更多