在 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();
它工作正常(对我来说它工作得很好,只是一个小问题是计算持续时间需要更长的时间)。
我正在寻找获取 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();
它工作正常(对我来说它工作得很好,只是一个小问题是计算持续时间需要更长的时间)。