Android上的视频时长
Posted
技术标签:
【中文标题】Android上的视频时长【英文标题】:duration of a video on Android 【发布时间】: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();
【问题讨论】:
您是否确保视频出现在链接中? 是的,因为我可以看到视频 尝试启动它然后使用函数 【参考方案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();
);
【讨论】:
以上是关于Android上的视频时长的主要内容,如果未能解决你的问题,请参考以下文章
基于AudioTrack、AudioRecord获取分贝值、录制时长、PCM解码与编码