我试图在我的应用程序中重现不支持 android 的视频(如 .wmv 视频),实际上我能够抓取每一帧并创建它的位图。
所以,现在,我试图在 VideoView(或任何其他视图)中依次显示这些位图,就像视频一样。
一些代码:
while (true) {
frame = frameGrabber.grab();
if (frame == null)
break;
frame2 =
IplImage.create(frame.width(), frame.height(),
opencv_core.IPL_DEPTH_8U, 4);
opencv_imgproc.cvCvtColor(frame, frame2,
opencv_imgproc.CV_BGR2RGBA);
bm =
Bitmap.createBitmap(frame2.width(),
frame2.height(), Bitmap.Config.ARGB_8888);
bm.copyPixelsFromBuffer(frame2.getByteBuffer());
canvas = new Canvas(bm);
mVideoView.draw(canvas);
canvas.save();
看起来我可以抓取视频的每一帧(使用 ffmpeg),但我只是不知道如何显示它们。
顺便说一句,我已经尝试将此视频编码为 .mp4 文件并在 VideoView 上播放,但处理整个视频需要很长时间(1 小时),所以,现在,我正在尝试显示它立即,无需对其进行编码 .mp4 (或任何其他 android 支持的视频)
有什么建议吗?