Android::获取视频的一帧?

发布于 2024-10-02 07:23:08 字数 351 浏览 3 评论 0原文

我有一个视频,我需要获取它的一些帧。

我曾经执行以下操作:使用相关视频的大小创建一个标准位图,创建一个画布并将其设置为在位图上绘制。

我使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

决绝 2024-10-09 07:23:08

您可以尝试查看图库应用程序的来源或其视频缩略图的来源(如果它们是外部创建的)

You might try looking at the source of the gallery app or wherever its video thumbnails come from if they are externally created

打小就很酷 2024-10-09 07:23:08

如何使用 MediaMetadataRetriever 的 getFrameAtTime ()。对于较低的 API 版本,请使用

How about using MediaMetadataRetriever's getFrameAtTime(). For lower API versions use this

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文