我正在尝试使用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()
会返回正确的帧数(比如说4
为2秒的剪辑)。
问题是frameAnimation.start()
仅在UI中显示这些帧的子集(例如frameAnimation
可以有17个帧,并且只播放4个帧。)
为什么AnimationDrawable
对象在循环其帧时缺少位图?
谢谢!