【发布时间】:2018-10-26 06:11:12
【问题描述】:
我正在尝试在 android 上制作一个 gif 应用程序。 gif 被制作并保存在 ExternalStoragePublicDirectory 中。现在我正在尝试通过将文件传递给适配器来获取这些文件并使用 MediaMetadataReteiver 在 recyclerview 中显示它。下面是 onBindViewHolder() 中的代码。
Log.d("GifAdapter: ", files[position].getAbsolutePath());
try {
retriever.setDataSource(files[position].getAbsolutePath());
holder.mImageView.setImageBitmap(retriever.getFrameAtTime(1000000, OPTION_CLOSEST_SYNC));
} catch (Exception e) {
e.printStackTrace();
}
它给了我 RuntimeException: setDataSource failed: status = 0x80000000。 我尝试使用包含视频文件的不同目录。它起作用了,我得到了要显示的框架。但是当我将它与 gif 一起使用时,它会给我运行时异常。我应该怎么做才能显示 gif。谢谢!
【问题讨论】:
-
为什么不用像glide之类的图片库呢?检查此链接,可能会有所帮助stackoverflow.com/a/48971859/4978133
-
@ClintPaul 感谢您的回复,我使用了它,也显示了 gif,但现在我出现内存不足异常,尽管应用程序没有崩溃。如果我只显示缩略图就好了。
-
'GlideApp .with(context) .asBitmap() .load(gifUrl) .into(imageViewGifAsBitmap);'试试这个,它只会显示 GIF 的第一帧。
-
感谢@Clint Paul。
标签: android gif runtimeexception mediametadataretriever