我正在Qt(5)中开发一个应用程序,基本上我正在尝试使用QtMultimedia5将相同的视频源渲染到窗口中的2个位置.我在QML中这样做,但如果有一个C++解决方案,我会乐意实现它.
我在窗口中显示视频没有问题.当我尝试使用相同的QMediaSource但将其渲染到2个窗口/控件上时,问题就开始了.
我看到的是调用QMediaService :: requestControl,它返回一个QVideoRendererControl对象.然后调用QVideoRendererControl :: setSurface来设置它呈现视频的表面.因此,从我收集的内容来看,QMediaService在任何给定时间都有一个表面呈现视频.
如何渲染到2个或更多曲面?还有其他课程能更好地满足我的需求吗?
干杯
嗯,这很简单,不是我预期的方式.你一定要喜欢QtQuick2.
所以我的QML代码中有一个MediaPlayer源和一个VideoOutput项:
MediaPlayer {
id: mp1
source: "slide-1.wmv"
}
VideoOutput {
id: tbltSlides
anchors.fill: parent
visible: true
source: mp1
}
Run Code Online (Sandbox Code Playgroud)
我所要做的只是添加一个ShaderEffectSource并将tbltSlides设置为其源.很简单:
ShaderEffectSource {
id: slides
x: 600
width:250
height: 250
sourceItem: tbltSlides
visible: true
}
Run Code Online (Sandbox Code Playgroud)
编辑:显然,为了获得最佳质量,您希望tbltSlides项比ShaderEffectSource更大,以便着色器缩小原始图像的尺寸.
| 归档时间: |
|
| 查看次数: |
1103 次 |
| 最近记录: |