Qt S60应用中的视频?

Sam*_*ton 1 c++ qt nokia s60 video-streaming

有没有人建立一个播放(流媒体或本地)视频的Qt S60应用程序(第3版,FP2)?

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

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

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

Gar*_*ell 5

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())
Run Code Online (Sandbox Code Playgroud)

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

总之,除非你急于这样做,否则最好等待几周后发布的4.6测试版.