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

在JavaAndroid中获取GIF持续时间的最佳方法是什么?,android,gif,duration,Android,Gif,Duration,我正在寻找获取GiF的持续时间的方法。Gif有没有像getDuration()这样的函数?您可以将Gif作为一个文件打开并检查持续时间: InputStream is = getResources().openRawResource(R.raw.my_gif); Movie movie = Movie.decodeStream(is); int duration = movie.duration(); 持续时间以毫秒为单位。由@samgak给出的答案工作得很好,如果输入

我正在寻找获取GiF的持续时间的方法。Gif有没有像getDuration()这样的函数?

您可以将Gif作为一个文件打开并检查持续时间:

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

持续时间以毫秒为单位。

由@samgak给出的答案工作得很好,如果输入的视频来自资源(raw)文件夹,它就会工作

但如果我们从设备存储器输入了视频路径,则只需将视频路径传递到
电影
类,如下所示:

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

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

非常感谢。它起作用了。但它在屏幕上显示信息的速度似乎很慢。无论如何,获取GIF的持续时间是个好主意。我正在获取GIF URL并将其显示在imageview中。现在,我怎样才能得到长度。请帮助我获取gif URL并将其显示在imageview中。现在,我怎样才能得到长度。请帮助您可以尝试
String.valueOf(uri)
而不是直接
uri
(我不知道这对您的情况是否有效,但您应该试试)。