在 Java Android 中获取 GIF 持续时间的最佳方法是什么?

What is the best way to get duration of a GIF in Java Android?

我正在寻找获取 GiF 持续时间的方法。 Gif有getDuration()之类的函数吗?

您可以将 GIF 打开为 Movie 并检查持续时间:

    InputStream is = getResources().openRawResource(R.raw.my_gif);
    Movie movie = Movie.decodeStream(is);
    int duration = movie.duration();

持续时间以毫秒为单位。

@samgak 给出的答案完美无缺,如果输入视频来自资产(原始)文件夹,它也能正常工作。

但是如果我们有来自设备存储的输入视频路径,那么只需将 videoPath 传递给 Movie class,如下所示:

Movie movie = Movie.decodeStream(videoPath);
int duration = movie.duration();

它工作正常(对我来说它工作得很好,只是一个小问题是计算持续时间需要更长的时间)。