首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么QMediaGaplessPlaybackControl不存在?

为什么QMediaGaplessPlaybackControl不存在?
EN

Stack Overflow用户
提问于 2018-09-08 07:08:27
回答 1查看 229关注 0票数 1

我修改了Qt 媒体播放器示例,试图获得QMediaGaplessPlaybackControl以实现交叉淡出效果。

这是我的代码:

代码语言:javascript
复制
auto service = m_player->service();
auto cc = service->requestControl("org.qt-project.qt.mediaplayercontrol/5.0");
Q_ASSERT(cc != nullptr);
QMessageBox::information(this, "", cc->metaObject()->className());
QMediaGaplessPlaybackControl* control = qobject_cast<QMediaGaplessPlaybackControl*>(cc);
Q_ASSERT(control != nullptr);

问题是,当我请求控件时,将返回一个nullptr。有人知道为什么吗?

我正在用MSVC编译器在Windows上使用QT5.11。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-08 09:38:25

文档 of QMediaService明确说明了如何获取指向媒体服务的QMediaControl实现的指针:

auto cc = qobject_cast<QMediaPlayerControl *>(service->requestControl("org.qt-project.qt.mediaplayercontrol/5.0"));

因此,为了获得cc作为QMediaGaplessPlaybackControl的更改:

代码语言:javascript
复制
auto cc = service->requestControl("org.qt-project.qt.mediagaplessplaybackcontrol/5.0");

至:

代码语言:javascript
复制
auto *cc = static_cast<QMediaGaplessPlaybackControl *>(qobject_cast<QMediaControl  *>(service->requestControl("org.qt-project.qt.mediaplayercontrol/5.0")));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52232891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档