是否有人构建了播放(流媒体或本地)视频的 Qt S60 应用程序(第 3 版,FP2)?
我想在小部件中播放视频,而不是(比如)QDesktopServices。
我知道有关于如何使用 Symbian 执行此操作的文档,例如此处和此处,但我仍然卡住了。
(为交叉发布提前道歉:我在其他地方问过,但没有成功。)
Qt 4 包含一套名为 Phonon 的多媒体 API,它允许您执行此操作。它们目前正在为 Symbian 实现——虽然Qt for S60 "Tower" 预发行版 不包括对 Symbian 上 Phonon 的支持,但 Qt 4.6 可以。
同时,您唯一的选择是直接使用 Symbian MMF API。具体来说,您的视频小部件(或它拥有的对象)将需要创建 的实例CVideoPlayerUtility
,因此需要实现MVideoPlayerUtilityObserver
. 视频播放器 API 要求客户端提供一个在其中显示视频的 RWindow - 这可以通过调用 获得QWidget::winId()
,它返回一个CCoeControl*
指针。因此,您可以通过调用获取窗口句柄
RWindow& window = *static_cast<RWindow*>(widget->winId()->DrawableWindow())
然而,总而言之,在 Symbian 上播放来自 Qt 应用程序(或实际上任何应用程序)的视频目前需要大量工作 - 特别是如果您想支持视频内容的动态调整大小和/或重新定位。另请注意,当前在 Symbian 上实现 Qt 的方式意味着将其他小部件(部分或完全)移动到视频小部件顶部将无法正常工作 - 视频将继续出现在顶部。这是因为QWidget::winId()
当前调用不会导致 Qt 创建本地 Symbian 窗口,并将在 4.6 中纠正。
总之,除非您急于这样做,否则最好等待几周后发布的 4.6 测试版。