【问题标题】:Video in Qt S60 application?Qt S60 应用程序中的视频?
【发布时间】:2009-10-01 12:38:22
【问题描述】:

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

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

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

(为交叉发帖提前道歉:我在其他地方问过,但没有成功。)

【问题讨论】:

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


    【解决方案1】:

    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())
    

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

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

    【讨论】:

    • 谢谢。我有一个使用 CVideoPlayerUtility 的简单应用程序,并将按照您的说明将其合并到 Qt 应用程序中。我已经看到了 4.6 技术预览的详细信息,但据我所知(尽管有一些视频类)不支持简单的视频播放:doc.qt.nokia.com/4.6-snapshot/qt4-6-intro.html
    • 可能值得指出的是,Qt 中有两组独立的多媒体 API。第一个,Phonon,已经完全开发——尽管正如我所说,还没有为 Symbian 实现。第二个是 QtMultimedia 项目,到目前为止,它已经定义了您提到的链接中描述的音频服务 API。该计划(在labs.trolltech.com/blogs/2009/09/09/… 中进行了完整描述)是为了让 QtMultimedia 发展成为比 Phonon 更丰富的功能。但是,对于短期内的简单视频播放,Phonon 仍然是您的最佳选择。
    • 那么——S60 Phonon 后端是否可用,或者它会在 4.6 for S60 中可用?
    • 目前正在开发中,将包含在 4.6 版本中。但是,因为 Qt 是开源的,所以您始终可以从 git repo (qt.gitorious.org/qt/qt/commits/4.6) - YMMV 等中提取最新代码 :)
    • MMF Phonon 后端现已在 4.6.0 测试版中提供 - 请参阅 labs.trolltech.com/blogs/2009/10/14/…
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    相关资源
    最近更新 更多