gpt4 book ai didi

c++ - 为什么 QMediaGaplessPlaybackControl 不存在?

转载 作者:行者123 更新时间:2023-11-30 04:56:58 24 4
gpt4 key购买 nike

我修改了Qt Media Player Example ,尝试获取 QMediaGaplessPlaybackControl 以获得交叉淡化效果。

这是我的代码:

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 上使用 Qt 5.11。

最佳答案

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

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

所以,为了得到cc作为 QMediaGaplessPlaybackControl 更改:

auto cc = service->requestControl("org.qt-project.qt.mediagaplessplaybackcontrol/5.0");

到:

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

关于c++ - 为什么 QMediaGaplessPlaybackControl 不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52232891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com