2015-11-11 97 views
0

我正在使用Mediastreamer2在Qt中創建多個Videostreams。 當我啓動視頻流時,mediastreamer2會在新打開的窗口中顯示流。 我需要在我的Qt GUI中的流。任何建議如何解決這個問題?Qt中的Mediastreamer2 Videostream輸出窗口GUI

video_stream_set_native_window_id(stream,ui->ANYTHING->winId());

此行改變了流的windowsID,bevor我啓動它。當它開始時,流窗口有一個新的ID。 到現在爲止,我嘗試了從窗口小部件到圖形用戶界面的所有操作...

回答

0

我認爲你將很難有一個3party的lib繪製到由qt創建的小部件,並且不認爲你應該嘗試這一切。即使你設法破解它,下一個qt補丁可能會再次破壞它。

你應該嘗試流到緩衝區而不是直接到屏幕。我不知道你的流庫,但我希望這是可能的。

然後搜索最具性能友好的方式將此緩衝區轉換爲QImage或QPixmap並將其添加到QLabel。我希望它可以在不移動任何數據的情況下完成。 或者,重寫QWidget的paint()方法並嘗試讓QPainter繪製緩衝區。我不知道這是否可能。

0

我真的很生氣,很容易。

QWindow *wi = Window::fromWinId(video_stream_get_native_window_id(video)); QWidget *ww = QWidget::createWindowContainer(wi);

創建具有WINDOWID從mediastream一個QWindow和使用WindowContainer創建一個QWidget。