1

我正在尝试使用一个AnimationDrawable对象显示一组位图。由于某种原因,在 UI 中呈现视图时,某些图像会丢失:

...
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(mContext, videoUri);
...
AnimationDrawable frameAnimation = new AnimationDrawable();
for(int i=0; i < numberOfFrames; i++) {
    Bitmap frame = retriever.getFrameAtTime(i * 500 * 1000); // get 2 frames per second
    frameAnimation.addFrame(new BitmapDrawable(getResources(), frame), 100); // 
}
...
frameAnimation.setOneShot(false);
frameAnimation.start();

调用frameAnimation.getNumberOfFrames()返回正确的帧数(比如42 秒剪辑)。

问题是frameAnimation.start()仅在 UI 中显示这些帧的一个子集(例如frameAnimation,可能有 17 个帧并且只播放其中的 4 个)。

任何想法为什么AnimationDrawable对象在循环其帧时缺少位图?

谢谢!

4

0 回答 0