android2.2 播放视频时,截取任意时间点图像且保存下来 【在线等】

username_gyy 2011-05-19 01:59:35
如题,
为什么我截的图像是黑屏的,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;
}

也没实现; 还有其它可实现方法?
...全文
1546 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
yong7356 2013-11-15
  • 打赏
  • 举报
回复
学习一下,截取本地视频缩略图。。。
hanweipeng1010 2013-04-08
  • 打赏
  • 举报
回复
楼主问题解决没 我现在也在做这个需求 求教???
supermagician 2012-07-26
  • 打赏
  • 举报
回复
凑巧最近项目要搞这个功能,分享下我的研究结果(其实未果)
首先截取手机本地视频事可以实现的,用MediaMetadataRetriever的getFrameAtTime方法
网络视频用了抓取view的cache,出来是黑的,用MediaMetadataRetriever的getFrameAtTime方法,出来也是黑的,抓取/dev/graphics/fb0的buffer,也是黑的, 迷茫鸟。。。
swjtu20072273 2012-06-11
  • 打赏
  • 举报
回复
11楼,求教下具体思路好吗?
华夏鹰 2011-05-25
  • 打赏
  • 举报
回复
期待解决办法
username_gyy 2011-05-24
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 changy 的回复:]
还有个思路可以考虑下,

通过这样来截屏 surfaceview -> canvas-〉bitmap
[/Quote]

不管怎么样,得到的图片都是黑屏的,该试的都试了,呵呵。。
CyberLogix 2011-05-22
  • 打赏
  • 举报
回复
这个你需要在媒体框架层增加几个接口可以轻松实现
changy 2011-05-19
  • 打赏
  • 举报
回复
还有个思路可以考虑下,

通过这样来截屏 surfaceview -> canvas-〉bitmap
username_gyy 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qizuyong 的回复:]
上层不能获取当前帧的内容,因为视频的显示是用OVerlay来实现的,不是framebuffer。数据解码完后就直接送给OVerlay显示了。
[/Quote]

意思就是没有解决办法了?
qizuyong 2011-05-19
  • 打赏
  • 举报
回复
上层不能获取当前帧的内容,因为视频的显示是用OVerlay来实现的,不是framebuffer。数据解码完后就直接送给OVerlay显示了。
username_gyy 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 username_gyy 的回复:]
引用 3 楼 changy 的回复:
可以考虑先截取整个模拟器(手机)屏幕,
然后根据视频窗口的上下左右坐标值,从中剪切出视频窗口的图像


嗯 ,谢谢,,期待还有其它办法,,
[/Quote] 不过怎么通过代码获取整个屏幕啊? ,而不是截图工具, 谢谢啦
username_gyy 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 smile__lv 的回复:]
对LZ的头像感兴趣。。。。是娇娇么?冠希哥与柏芝姐又开始自拍了。。你悲剧了。。
[/Quote]

无语了。。。。 看来你很闲啊,,顺便回答下,头像认反了; 问题你还能帮我搞定??
Smile__LV 2011-05-19
  • 打赏
  • 举报
回复
对LZ的头像感兴趣。。。。是娇娇么?冠希哥与柏芝姐又开始自拍了。。你悲剧了。。
username_gyy 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 changy 的回复:]
可以考虑先截取整个模拟器(手机)屏幕,
然后根据视频窗口的上下左右坐标值,从中剪切出视频窗口的图像
[/Quote]

嗯 ,谢谢,,期待还有其它办法,,
changy 2011-05-19
  • 打赏
  • 举报
回复
可以考虑先截取整个模拟器(手机)屏幕,
然后根据视频窗口的上下左右坐标值,从中剪切出视频窗口的图像
username_gyy 2011-05-19
  • 打赏
  • 举报
回复
忘了,还有, 用的是SurfaceView显示视频,截屏是指截取视频窗口大小的图像,而非模拟器的整个屏幕,先谢谢了
shenjie1989 2011-05-19
  • 打赏
  • 举报
回复
哈哈,沙发

80,363

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧