我有一个SDL_surface
在自己的窗口中播放视频。我希望这个窗口呈现在QWidget
. 我想要一个通用的解决方案,因为我的目标是 OSX、Windows 和 Linux。
我遇到了两种解决方案,总结如下:
Window ID hack涉及设置
SDL_WINDOWID
为 QWidget 的 id,以便 SDL将像素推送到 QWidget。这是来自相关线程的示例 Qt 片段。但是,这不适用于 OS X,并且不能保证在所有 Win 和 Linux 平台上都可以使用。
手动从非窗口 SDL_surface 复制到 QWidget。
找到了一些Gtk+ 的示例代码,但到目前为止还没有找到 Qt 的示例代码。这个想法是将视频推送到内存并从 QWidget 中提取。当然不应该使用 QImage 来渲染每一帧。那么如何实现这种复制呢?
可能有重复的问题,但我的问题是关于平台独立性的更具体的问题