我正在使用Mediastreamer2在Qt中制作多个Videostream。 当我启动视频流时,mediastreamer2在新打开的窗口中显示流。 我在Qt GUI中需要流。有什么建议如何解决这个问题?
video_stream_set_native_window_id(stream,ui->ANYTHING->winId());
这一行改变了Stream的windowsID,我开始吧。启动时,流窗口有一个新ID。 到目前为止,我尝试了从窗口小部件到框架的GUI中的所有内容......
答案 0 :(得分:0)
我认为你将很难在qt创建的小部件上使用3方的lib绘制,并且不认为你应该尝试这一点。即使你设法破解它,下一个qt补丁可能会再破坏它。
您应该尝试流式传输到缓冲区而不是直接流向屏幕。我不知道你的流库,但我希望这是可能的。
然后搜索性能最友好的方法将此缓冲区转换为QImage或QPixmap并将其添加到QLabel。我希望可以在不移动任何数据的情况下完成这项工作。 或者,覆盖QWidget的paint()方法并尝试让QPainter绘制缓冲区。我不知道这是否可能。
答案 1 :(得分:0)
我真的很生气,这很容易。
QWindow *wi = Window::fromWinId(video_stream_get_native_window_id(video));
QWidget *ww = QWidget::createWindowContainer(wi);
使用mediastream中的windowID创建一个QWindow,并使用WindowContainer创建一个QWidget。