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()と、正しいフレーム数が返されます (たとえば4、2 秒のクリップの場合)。

問題はframeAnimation.start()、UI にこれらのフレームのサブセットしか表示されないことです (たとえば、frameAnimation17 フレームがあり、そのうちの 4 つしか再生されない可能性があります)。

AnimationDrawableフレームをループするときにオブジェクトにビットマップが欠落している理由はありますか?

ありがとう!

4

0 に答える 0