オブジェクトを使用して一連のビットマップを表示しようとしてい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
フレームをループするときにオブジェクトにビットマップが欠落している理由はありますか?
ありがとう!