Android::获取视频的一帧?
我有一个视频,我需要获取它的一些帧。
我曾经执行以下操作:使用相关视频的大小创建一个标准位图,创建一个画布并将其设置为在位图上绘制。
我使用 SurfaceView 和 surfaceHolder。一个 mediaPlayer 正在 surfaceView 上绘图,我有一个调用 surfaceView.draw(canvas) 的方法,它在画布上绘图,它绘制到位图上,我最终获取并使用它......
我的问题是 60%当我得到黑框的时候。媒体播放器在单独的线程中播放其内容,我不知道视频何时开始,何时开始 - 不,所以我相信这就是导致我黑屏的原因。
我需要解决方法、修复或其他方法来获取视频帧。
提前致谢。
I have a video, and I need to get some of its frames.
I used to do the following: Create a standart bitmap with the size of the video in question, create a canvas and set it to draw on a bitmap.
I use a SurfaceView and a surfaceHolder. A mediaPlayer is drawing on the surfaceView, and I have a method that calls surfaceView.draw(canvas), which draws on the canvas, which draws to the bitmap, which I eventually take and use...
My problem is that 60% of the time I get black frames. The mediaplayer plays its content in a separete thread, and I do not know when the video has started, and when - not, so I believe this is what is getting my black screens.
I need a workaround, a fix, or another method to get the video frame.
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以尝试查看图库应用程序的来源或其视频缩略图的来源(如果它们是外部创建的)
You might try looking at the source of the gallery app or wherever its video thumbnails come from if they are externally created
如何使用 MediaMetadataRetriever 的 getFrameAtTime ()。对于较低的 API 版本,请使用此
How about using MediaMetadataRetriever's getFrameAtTime(). For lower API versions use this