Qt S60应用中的视频?

时间:2009-10-01 12:38:23

标签: c++ qt video-streaming nokia s60

是否有人制作了可播放(流媒体或本地)视频的Qt S60应用程序(第3版,FP2)?

我想在一个小部件中播放视频,而不是(比如说)QDesktopServices。

我知道有关于如何使用Symbian执行此操作的文档,例如herehere,但我仍然卡住了。

(提前道歉交叉发布:我在别处问过,但没有成功。)

1 个答案:

答案 0 :(得分:5)

Qt 4包含一套名为Phonon的多媒体API,允许您这样做。它们目前正在为Symbian实施 - 而Qt for S60 "Tower" pre-release 不包括对Symbian的Phonon的支持,Qt 4.6会做。

与此同时,您唯一的选择是直接使用Symbian MMF API。具体而言,您的视频窗口小部件 - 或其拥有的对象 - 将需要创建CVideoPlayerUtility的实例,因此需要实现MVideoPlayerUtilityObserver。视频播放器API要求客户端提供一个显示视频的RWindow - 这可以通过调用QWidget::winId()获得,该CCoeControl*返回一个RWindow& window = *static_cast<RWindow*>(widget->winId()->DrawableWindow()) 指针。因此,您可以通过调用

来获取窗口句柄
QWidget::winId()

总而言之,从Symbian上的Qt应用程序(或任何应用程序)播放视频目前需要做大量工作 - 特别是如果您想支持动态重新调整大小和/或重新定位视频内容。另请注意,目前在Symbian上实现Qt的方式意味着在视频窗口小部件上移动其他窗口小部件(部分或完全)将无法正常工作 - 视频将继续显示在顶部。这是因为调用{{1}}当前不会导致Qt创建本机Symbian窗口,并将在4.6中纠正。

总之,除非您急于这样做,否则最好等待几周后到期的4.6测试版。