Android 上的视频时长
duration of a video on Android
在此代码中,我尝试使用方法 getDuration()
获取视频的持续时间,但它不起作用并且 return 始终为 -1。怎么了?我可以用其他方式获取时长吗?(视频是放在raw目录下的mp4文件)
videoPlayer = (VideoView) this.findViewById(R.id.videoView2);
videoPlayer.setVideoPath("android.resource://"+getPackageName()+"/"+R.raw.video3);
int duration = videoPlayer.getDuration();
从 videoView 中的 getDuration 复制:
public int getDuration(){
if (isInPlaybackState()) {
return mMediaPlayer.getDuration();
}
return -1;
}
据我所知,如果视频没有播放,您将无法获得正确的持续时间。所以一个可能的解决方案是开始播放,获取持续时间然后停止播放并重新启动视频。
在 setOnPreparedListener 中调用 getDuration
videoPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
long duration = videoPlayer.getDuration();
}
});
在此代码中,我尝试使用方法 getDuration()
获取视频的持续时间,但它不起作用并且 return 始终为 -1。怎么了?我可以用其他方式获取时长吗?(视频是放在raw目录下的mp4文件)
videoPlayer = (VideoView) this.findViewById(R.id.videoView2);
videoPlayer.setVideoPath("android.resource://"+getPackageName()+"/"+R.raw.video3);
int duration = videoPlayer.getDuration();
从 videoView 中的 getDuration 复制:
public int getDuration(){
if (isInPlaybackState()) {
return mMediaPlayer.getDuration();
}
return -1;
}
据我所知,如果视频没有播放,您将无法获得正确的持续时间。所以一个可能的解决方案是开始播放,获取持续时间然后停止播放并重新启动视频。
在 setOnPreparedListener 中调用 getDuration
videoPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
long duration = videoPlayer.getDuration();
}
});