如题,
为什么我截的图像是黑屏的,MediaPlayer源码里有 public native Bitmap getFrameAt(int msec) throws IllegalStateException; 方法,但是未对外开放,查看了下C对其实现:// FIXME: deprecated
static jobject
android_media_MediaPlayer_getFrameAt(JNIEnv *env, jobject thiz, jint msec)
{
    return NULL;
}也没实现; 还有其它可实现方法?

解决方案 »

  1.   

    忘了,还有, 用的是SurfaceView显示视频,截屏是指截取视频窗口大小的图像,而非模拟器的整个屏幕,先谢谢了
      

  2.   

    上层不能获取当前帧的内容,因为视频的显示是用OVerlay来实现的,不是framebuffer。数据解码完后就直接送给OVerlay显示了。
      

  3.   

    还有个思路可以考虑下,通过这样来截屏 surfaceview -> canvas-〉bitmap
      

  4.   

    凑巧最近项目要搞这个功能,分享下我的研究结果(其实未果)
      首先截取手机本地视频事可以实现的,用MediaMetadataRetriever的getFrameAtTime方法
    网络视频用了抓取view的cache,出来是黑的,用MediaMetadataRetriever的getFrameAtTime方法,出来也是黑的,抓取/dev/graphics/fb0的buffer,也是黑的, 迷茫鸟